SQL Server 2005 - 多个数据库

jfr*_*how 1 database performance join sql-server-2005

我们正在使用SQL Server 2005,在开发时,决定创建多个数据库.例如,我们有一个数据库用于个人说dbIndividual,另一个数据库用于翻译说dbLocale.

到目前为止,这已经简化了备份和潜在的恢复,因为我们只需要备份我们需要的东西(除非有一种方法来备份/恢复我们不知道的模式.)

这导致我们在多个数据库表和文件上使用JOINS进行多次查询.

例如:

select customer.firstname, address.addressL1, addressType.value
from dbIndividual.dbo.customer
inner join dbIndividual.dbo.address
    on fkCustomerID = iCustomerID
inner join dbLocale.translation.addressType
    on fkAddressTypeID = iAddressTypeID
    and fkLangID = 1
Run Code Online (Sandbox Code Playgroud)

这有什么缺点吗?除此之外,我们无法跨多个数据库强制实施数据完整性.加入时是否会减慢速度,因为数据可能位于磁盘的完全不同的部分?

我要问的原因是因为我们正在重组我们的基础设施,这是一个不断涌现的潜在问题.

Kei*_*eau 6

当前的最佳实践是使用具有多个模式的相同数据库.每个模式都可以放在自己的文件中,然后可以轻松备份.它还允许您强制执行外键约束.

我们过去常常使用像您公司一样的多数据库模型,最近我们将所有新开发都改为使用模式.我们没有丢失任何东西,并且已经获得了执行我们的外键的能力,这是巨大的.


KM.*_*KM. 5

外键是使用关系数据库的主要原因之一.如果你不能在需要时使用它们,因为数据在不同的数据库中,那么在多个数据库中拆分表是不好的.

  • 不能同意更多! (3认同)