Sql server 使用不同表或不同数据库时的SQL性能

Sql server 使用不同表或不同数据库时的SQL性能,sql-server,database-performance,query-performance,Sql Server,Database Performance,Query Performance,目前,我有一个SQL数据库,有很多客户 我有一个表存储所有客户的数据。现在我想拆分数据,每个表将存储每个客户的数据。或者每个数据库将存储每个客户的数据 我对SQL的性能感到困惑。哪种方式是最好的解决方案?存储在同一数据库的每个表上,还是存储在每个数据库上?如注释中所述(您描述的)这两种方法都不是一个好主意。若要提高数据库的性能,请正确使用索引。您还可以查看分区表: “现在我想分割数据,每个表将存储每个客户的数据。或者每个数据库将存储每个客户的数据。”这听起来像是一个可怕的坏主意。将所有客户集中

目前,我有一个SQL数据库,有很多客户

我有一个表存储所有客户的数据。现在我想拆分数据,每个表将存储每个客户的数据。或者每个数据库将存储每个客户的数据


我对SQL的性能感到困惑。哪种方式是最好的解决方案?存储在同一数据库的每个表上,还是存储在每个数据库上?

如注释中所述(您描述的)这两种方法都不是一个好主意。若要提高数据库的性能,请正确使用索引。您还可以查看分区表:


“现在我想分割数据,每个表将存储每个客户的数据。或者每个数据库将存储每个客户的数据。”这听起来像是一个可怕的坏主意。将所有客户集中在一个地方。每个客户(甚至更糟的是,数据库)的一个表永远都不可能是可维护或可扩展的。你能想象亚马逊是否为每一位客户提供了不同的表或数据库吗?它们将有上亿个表或数据库…关系数据库非常擅长管理此问题,您只需确定行属于哪个客户,对它们进行索引,并将它们全部保存在同一个表中。对于您的问题“哪种方式是最佳解决方案?”这太宽泛了,或者会产生自以为是的答案,我的意见是:两个都不要做,两个都是坏主意。@Larnu你说的很对,但是如果有几个客户想要分离(模式/表格),该怎么办因为有公司规定,我在过去的几次工作中遇到过其他客户的这种情况。这种描述听起来更像是你托管客户的数据,@RaymondNijland;这是一个非常不同的场景。OP描述了他们有一个客户表,并且他们希望使用不同的数据库/表来存储所述客户的数据。他们没有说他们正在为他们的客户托管数据,所有不同的细节都在不同的表中。对于您的场景,当然可能需要不同的数据库,但OP似乎在这里讨论单个个人的详细信息。