SQL Server查看数据字典遇到大索引性能问题 #1911
jimsoft1000
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
在v1.8.5版本中,SQL Server查看数据字典遇到大索引性能问题,原因是查询索引部分性能不好,建议修改成如下内容,性能非常好
SELECT space.*,table_comment,index_length,IDENT_CURRENT('003-UserCreatedPaper') as auto_increment
FROM (
SELECT
t.NAME AS table_name,
t.create_date as create_time,
t.modify_date as update_time,
p.rows AS table_rows,
SUM(a.total_pages) * 8 AS data_total,
SUM(a.used_pages) * 8 AS data_length,
(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS data_free
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
WHERE
t.NAME ='003-UserCreatedPaper'
AND t.is_ms_shipped = 0
AND i.OBJECT_ID > 255
GROUP BY
t.Name, t.create_date, t.modify_date, p.Rows)
AS space
INNER JOIN (
SELECT t.name AS table_name,
convert(varchar(max),td.value) AS table_comment
FROM sysobjects t
LEFT OUTER JOIN sys.extended_properties td
ON td.major_id = t.id
AND td.minor_id = 0
AND td.name = 'MS_Description'
WHERE t.type = 'u' and t.name = '003-UserCreatedPaper') AS comment
ON space.table_name = comment.table_name
INNER JOIN (
SELECT a.name AS table_name,(used - dpages) * 8 as index_length
FROM sys.sysobjects a
INNER JOIN sys.sysindexes b ON a.id = b.id
WHERE a.type = 'U'
AND b.indid IN (0, 1) and a.name='{tb_name}'
) AS index_size
ON index_size.table_name = space.table_name;
Beta Was this translation helpful? Give feedback.
All reactions