我曾尝试过sp_helpindex但它显示的索引列不是包含的列.请告诉我如何列出包含列(非键)的所有索引?
我在 SSMS 中执行了以下程序:
CREATE Procedure [dbo].[MyTableLoadByPK]
(
@MyTableID int
)
AS
BEGIN
SET NOCOUNT ON
SELECT
*
FROM [MyTable]
WHERE
del = 0 AND MyTableID = @MyTableID
END
exec MyTableLoadByPK @MyTableID=1001
Run Code Online (Sandbox Code Playgroud)
MyTable有 40000 条记录,并且MyTableID上有一个聚集索引。
每次我调用上述过程逻辑读取 2,物理读取 2 时,统计 IO 都是相同的:
Table 'MyTable'. Scan count 0, logical reads 2, physical reads 2, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Run Code Online (Sandbox Code Playgroud)
但是当我在 Profiler 中检查相同程序的跟踪时,我发现读取的差异很大,甚至差异也不同。一倍248,三倍228。
以下是从跟踪中读取的内容:
TextData CPU Reads Writes Duration …Run Code Online (Sandbox Code Playgroud)