在最近的项目中,"主要"开发人员设计了一个数据库模式,其中"较大"的表将分成两个独立的数据库,主数据库上的视图将两个单独的数据库表联合在一起.主数据库是应用程序的驱动因素,所以这些表看起来像普通表(除了一些有关更新的古怪事物).这似乎是一个巨大的性能问题.我们确实看到围绕这些表格的性能问题,但没有什么可以让他改变他对他的设计的看法.只是想知道最好的方法是什么,或者它是否值得做?
我不认为你真的会通过在单个服务器中跨多个数据库划分表来获得任何收益.所有你基本上完成的工作都是通过在单个SQL Server实例下拥有多个实例(即在两个不同的DB中打开)来增加使用"表"的开销.
你有多大的数据集?我有一个客户端,在SQL Server中有一个600万行表,其中包含2年的销售数据.他们在事务上使用它并报告没有任何明显的速度问题.
当然,调整索引并选择正确的聚簇索引对性能至关重要.
如果您的数据集非常大并且您正在寻找分区,那么您将获得更多的优势,以便在物理服务器上对表进行分区.