我在我们的应用程序中有三种不同的产品,即车辆、黄金和财产。每个产品都有近 30 种不同的库存详细信息。我设计了我的表结构如下:-
标题表:-
PkId ------ + ProductFkId------ + AssetId ------ + RegNo
1 | 1 | A00001 | R0001
2 | 2 | A00002 | R0001
3 | 3 | A00003 | R0001
Run Code Online (Sandbox Code Playgroud)
车辆库存表:-
PkId ---------------+ HeaderFkId -------- + Make ------- + Model
1 | 1 | Toyota | Etios Cross Dieselvdsp
2 | 2 | Toyoto | Etios Dieselgd
3 | 3 | Toyota | Etios Dieseld-4d Gd
Run Code Online (Sandbox Code Playgroud)
黄金库存表:-
PkId ------- + HeaderFkId ----- + Carat18 ----- + …
Run Code Online (Sandbox Code Playgroud) 当我尝试在 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)
如何更快地从上表中检索数据?