我在SQL Server 2014上运行,并且有一个与包含订单的表相关的Customer
表。 Order
表具有例如500.000行 - 对于5个客户中的每一个具有100.000行。因此,当查找特定客户的特定日期的所有订单时,SQL将是
Select *
from Orders
Where idCustomer = 1
and OrderDate = '20160225'
此查询应查看500.000条记录以查找相关订单。
为性能创建5个视图,每个客户的视图然后查询视图会更好吗?
Select *
from View_Orders_Customer1
Where OrderDate = '20160225'
或者我必须创建5个表Order_Customer1
,Order_Customer2
等 - 而不是??
答案 0 :(得分:0)
我不建议为每个客户创建视图..但您可以在表http://www.w3schools.com/sql/sql_create_index.asp中添加索引
您还可以在视图上添加索引以增强选择性能 https://technet.microsoft.com/en-us/library/ms187864(v=sql.105).aspx
我的表包含超过700,000条记录,并且在表格和视图中应用索引非常有帮助
答案 1 :(得分:0)
对于相同的数据模型,请使用相同的表格。不止一个表或视图不是好设计,