sql—为什么在获取表行时sysindexes比sys.pations快得多?

lx0bsm1f  于 2021-08-01  发布在  Java
关注(0)|答案(0)|浏览(209)

我不知道为什么sys.pations查询运行得这么慢。它在表“sysrowsets”上花费了很多时间。真的很困惑。有人能帮忙回答这个问题吗?谢谢!

运行时间

问题1:2.7s
查询2:19s

查询详细信息

查询1:

  1. SET STATISTICS IO ON;
  2. GO
  3. SELECT
  4. sys_tables.name AS [TableId],
  5. sysindexes.rowcnt AS [RowCnt]
  6. FROM
  7. sysindexes WITH (NOLOCK)
  8. INNER JOIN sys.tables AS sys_tables WITH (NOLOCK)
  9. ON sys_tables.object_id = sysindexes.id
  10. INNER JOIN sys.schemas AS sys_schemas WITH (NOLOCK)
  11. ON sys_schemas.schema_id = sys_tables.schema_id
  12. WHERE
  13. sys_schemas.name = 'xxxxxx' AND
  14. LEN(sys_tables.name) = 26 AND
  15. sysindexes.indid = 1
  16. GO
  17. SET STATISTICS IO OFF;
  18. GO

信息:

  1. (1001 row(s) affected)
  2. Table 'syssingleobjrefs'. Scan count 3003, logical reads 9042, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  3. Table 'sysidxstats'. Scan count 2002, logical reads 6058, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  4. Table 'sysschobjs'. Scan count 1, logical reads 6835, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  5. Table 'sysclsobjs'. Scan count 0, logical reads 2, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.

问题2:

  1. SET STATISTICS IO ON;
  2. GO
  3. SELECT
  4. sys_tables.name AS [TableId],
  5. sys.partitions.rows AS [RowCnt]
  6. FROM
  7. sys.partitions WITH (NOLOCK)
  8. INNER JOIN sys.tables AS sys_tables WITH (NOLOCK)
  9. ON sys_tables.object_id = sys.partitions.object_id
  10. INNER JOIN sys.schemas AS sys_schemas WITH (NOLOCK)
  11. ON sys_schemas.schema_id = sys_tables.schema_id
  12. WHERE
  13. sys_schemas.name = 'xxxxxx' AND
  14. LEN(sys_tables.name) = 26 AND
  15. sys.partitions.index_id = 1
  16. GO
  17. SET STATISTICS IO OFF;
  18. GO

信息:

  1. (1001 row(s) affected)
  2. Table 'syssingleobjrefs'. Scan count 3003, logical reads 9468, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  3. Table 'sysidxstats'. Scan count 1001, logical reads 4057, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  4. Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  5. Table 'sysrowsets'. Scan count 1002, logical reads 644644, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  6. Table 'sysschobjs'. Scan count 1, logical reads 3832, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
  7. Table 'sysclsobjs'. Scan count 0, logical reads 2, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题