gpt4 book ai didi

sql-server - 识别存储空间的分配算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:21:52 25 4
gpt4 key购买 nike

enter image description here

引用图片

我的场景

I1 和 I2 是我的 SQL 服务器实例,它们可能在同一台服务器或不同的服务器上。小方框内表示 sql 实例内的数据库。

每个方框旁边的数字代表一个人可以存储的数据量。 IE 。有30个的数据库可以存储30个用户的数据。将有 n 个服务器、实例和数据库,这可以扩展。

I1 设计的容量是 60(10+20+30)

我们有另一个主数据库,其中包含服务器、实例和数据库的详细信息。使用它我们可以防止使用带有位域的数据库。因此,如果我停止能够在 I1 用户中存储 20 的数据库,那么 I1 的总存储量将为 40

我的需求

我们需要一种算法来根据可用空间识别服务器实例。这样基础架构团队就可以对流量进行负载平衡。

如果 I1 的限制是 30I220I310用户将按照 3:2:1 的比例进行分配。如果创建了30个用户,则I1包含15个,I2包含10个,I3包含5个。

我怎样才能做到这一点?任何算法。

我需要在 SQL Server 2008 中实现这一点。

很抱歉写了这么长的文章来描述我的问题:(。希望有人能帮助我。在此先感谢。

最佳答案

执行此操作的一个简单算法是使用随机数生成器和 if-else block

float db1upper = 10.0 / (10 + 20 + 30)
float db2upper = db1upper + 10.0 / (10 + 20 + 30)

float rand // [0, 1)
if(rand < db1upper)
Use db1
else if(rand < db2upper)
Use db2
else
Use db3

您可以每 X 次分配和/或每 X 分钟更新一次 dbNupper 的值,以反射(reflect)正在重新分配的用户或反射(reflect)随机数生成器中的任何偏差

关于sql-server - 识别存储空间的分配算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com