Nie*_*sma 38 t-sql sql-server indexing
索引仅在LIKE运算中使用的varchar列是一个好主意吗?从我从查询分析中可以读到的内容我得到以下查询:
SELECT * FROM ClientUsers WHERE Email LIKE '%niels@bosmainter%'
Run Code Online (Sandbox Code Playgroud)
我得到的"估计子树成本"为0.38,没有任何索引,0.14有索引.如果使用索引优化了查询,这是一个用于anlayzing的好指标吗?
KM.*_*KM. 71
鉴于数据'abcdefg'
WHERE Column1 LIKE '%cde%' --can't use an index
WHERE Column1 LIKE 'abc%' --can use an index
WHERE Column1 Like '%defg' --can't use an index, but see note below
Run Code Online (Sandbox Code Playgroud)
注意:如果您有需要'%defg'的重要查询,则可以使用持久计算列来REVERSE()列,然后对其进行索引.然后你可以查询:
WHERE Column1Reverse Like REVERSE('defg')+'%' --can use the persistent computed column's index
Run Code Online (Sandbox Code Playgroud)
要回答您的问题的指标部分:正在执行的索引/表扫描/查找的类型是了解(是否)正确使用索引的良好指示。它通常显示在查询计划分析器的最上方。
以下扫描/搜索类型从最差(顶部)到最佳(底部)排序:
根据经验,通常会尽可能尝试在扫描中进行搜索。和往常一样,根据表的大小,查询的列等会有一些例外。我建议在StackOverflow上搜索 “扫描搜索索引”,这样您将获得很多有关此主题的好信息。