RGS*_*RGS 0 sql-server sql-server-2012
当我尝试在 SSMS 中执行以下查询时,由于列大小过长(列名称:关键字,列大小:nvarchar(4000)),查询需要更多时间(超过 10 分钟)来执行。员工表包含 6000 条记录。
Select EmployeeId, EmployeeName, Designation, Keywords
From Employees
Where StatusFlag = 'L'
Run Code Online (Sandbox Code Playgroud)
我为上表创建了下面的非聚集覆盖索引。
Create NonClustered Index NCI_Employees_StatusFlag On Employees(StatusFlag) Include (EmployeeId, EmployeeName, Designation, Keywords)
Run Code Online (Sandbox Code Playgroud)
如何更快地从上表中检索数据?
即使所有 6,000 行都装满了 4,000 个 Unicode 字符(8,000 字节),也只有 45 MB 的数据。即使使用冷缓存,也不可能需要 10 分钟才能读取那么多内容。
正如Randi Vertongen在评论中提到的那样,您可能会被某些东西挡住。这里的答案不会是索引。sp_WhoIsActive
在您的查询执行时运行以查看发生了什么。那应该告诉你: