我对群集和非群集索引的使用情况进行了查询。目前,我正面临Azure SQL数据库的性能问题。
基本选择查询需要10分钟以上才能检索数据。
select * from table_name
总行数超过100万。
有一个集群索引和8个非集群索引可用,还有一些外键。
我应该为所有非群集和聚集索引制作WITH ONLINE=ON
选项吗?
我是否可以知道实际问题以及在这方面要做些什么才能解决性能问题?
注意:我可以看到桌面上的1001锁定升级以及桌面上的扫描次数。
另外,建议我使用索引语法。我可以在Azure SQL数据库中按照以下方式进行操作吗?
创建非收集索引
CREATE INDEX [IX_TestTable_Country_City_LastName_FirstName]
ON [dbo].[TestTable] ([Country] ASC, [City] ASC, [LastName] ASC, [FirstName] ASC)
WITH(ONLINE = ON);
创建过滤的NONCLUSTERED INDEX
CREATE INDEX [IX_TestTable_Type_LastName_FirstName_where_Type_greater_than_1]
ON [dbo].[TestTable] ([Type] ASC, [LastName] ASC, [FirstName] ASC)
WHERE [Type] > 1
WITH(ONLINE = ON);