今天我在 SSMS 中运行了一个查询,它给了我一个关于缺少索引的提示。
但是创建索引的语句让我感到困惑,有一个名称 Name of Missing Index
很清楚,但名称部分也有我不明白的 ,sysname
。
我一直在研究这个 https://docs.microsoft.com/en-us/sql/t-sql/statements/create-index-transact-sql 但我找不到关于这个创建语法的解释。
所以在 [<Name of Missing Index, sysname,>]
部分,我可以只替换 Name of Missing Index
并保留值 sysname
还是我必须在那里放其他东西?
我正在使用 sql server 2014
这是 SSMS 创建的结果
/*
Missing Index Details from SQLQuery1.sql - SQLSERVER\GTT_192.GTT_Test (sa (70))
The Query Processor estimates that implementing the following index could improve the query cost by 43.2521%.
*/
/*
USE [GTT_Test]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[tblRitRouteDetail] ([DistanceToll])
INCLUDE ([RitID])
GO
*/
如果我像这样创建索引有什么区别:
CREATE NONCLUSTERED INDEX IX_RitRouteDetail_DistanceToll
ON dbo.tblRitRouteDetail (DistanceToll)
INCLUDE (RitID)
最佳答案
sysname
只是它期望的 SQL 数据类型。它是 type.sysname,所以本质上该命令是说请创建一个索引,缺少的索引的名称将是 sysname
类型。
编辑
要回答最初的问题,如果您以一种或另一种方式创建索引有什么区别。没有区别,它们都将以完全相同的方式创建您的索引。
关于sql-server - 在这个建议的 create index 语句中 sysname 是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46076747/