我正在开发一个web2项目,我希望用户每天有数千行。 为了处理这个大小的数据,我设计了这样的数据库: 一个.mdf和.ldf文件作为Minor DataBase和1个主要DB来保存和查询用户帐户和数据库文件地址。
我已经为这个计划工作了几个月,现在我可以轻松地管理它。 我想知道处理大量独立数据是否是个好主意? 巫婆在你看来表现更好?打开许多小.mdf文件的连接或只是一个巨大的数据库。
之后我会将mdf存储库分成几台计算机。
所有这些都由C#和linq(.net4)
处理//稍后的描述
我制定了这个计划,它运作良好。 例如:打开每个小mdf文件花费1秒时间并在0.0秒内查询它。它为每个连接创建静态时间但在单个数据库中为50个系统必须在例如200,000行中找到它们,并且在我的系统中使用主键进行简单的选择查询需要大约4-5秒。
对于其他实例,我希望在500,000行之间获取一行来绑定页面内容,并选择50个2milmions行之间的注释,并获得每个评论的投票数,查看日,周,月和总计数。喜欢的数量,评论的答案以及从其他2-3个表中获取更多数据,这些查询很重,比小型数据库需要更多时间。
我认为良好的设计和流程必须对系统起作用。
唯一的问题是,带有sql server文件的小型从属数据库需要更多的物理大小,每个数据库大约3MB。
答案 0 :(得分:3)
没有理由将可能/应该作为单个数据库存在的内容拆分为多个独立部分。
已经存在跨多个文件对单个逻辑数据库进行分区的机制:Files and Filegroups Architecture以及partition个大表(每天几千行并不真正有资格成为一个大表)
答案 1 :(得分:1)
“每天数千行”应该是Sql Server的口袋更改。
首先,我投了Alex K的答案。文件组将带您到达您最有可能的位置。分区表可能过度,只能在企业版中使用,不适合轻松的人。
我要补充的是:
http://www.google.com/#q=glenn+berry+dmv&bav=on.2,or.r_gc.r_pw.&fp=73d2ceaabb6b01bf&hl=en
您需要调整索引。在优秀与优秀与最佳类别中,格伦贝瑞的DMV查询“更好”。这些查询将帮助您解决大多数问题。 在“最佳”类别中,查看每个存储过程,查看执行计划并尝试不同的事情是痛苦的。这是一个优秀的dba能够提供的。
以下是有关文件设置注意事项的一些“基础知识”。注意TEMP数据库设置。 http://technet.microsoft.com/en-us/library/cc966534.aspx
答案 2 :(得分:0)
难以管理小型MDF文件你必须使用SQL服务器和SQL服务器数据库为每个数据库提供10GB数据存储,这很容易