Размер одного ключа в индексе

Я построил некластеризованный индекс по нескольким полям. Как теперь посмотреть размер каждого ключа в моем индексе, или это просто сумма размеров байтов поля, которые я использовал в своем индексе?

Спасибо Томас

1 ответ

Это в строках в таблице, которую я ожидаю. Если я прав, строки всегда содержат все данные и индексы, просто добавьте накладные расходы. Поскольку вы не сказали, какую базу данных вы используете, результаты могут несколько отличаться.

Я предположил, что вы делали это в SQL Server - он содержит много информации в специальных системных представлениях и таблицах, которые я демонстрирую ниже.

По крайней мере, этот запрос даст вам общий размер (включая данные строки и большой объект (varbinaries/images), но также и некоторые отдельно. Я скопировал это, так что терпите меня, но добавьте partition_stats.*, В список выбора, и вы получите отдельную статистику в хотя бы для больших двоичных объектов и данных строк.. ты занимаешься математикой)

SELECT 
in_row_data_page_count * 8 / 1024 RowDataSizeMB, 
in_row_used_page_count * 8 / 1024 RowSizeMB,
sys_schemas.name AS SchemaName  
,sys_objects.name AS TableName  
,sys_indexes.name AS IndexName  
,sys_indexes.type_desc AS IndexType  
,partition_stats.used_page_count * 8 AS TotalSizeKB  
,CAST(partition_stats.used_page_count * 8 / 1024.00 AS Decimal(10,3))AS TotalSizeMB  
,CAST(partition_stats.used_page_count * 8 / 1048576.00 AS Decimal(10,3)) AS TotalSizeGB  
FROM sys.dm_db_partition_stats partition_stats  
INNER JOIN sys.indexes sys_indexes  
ON partition_stats.[object_id] = sys_indexes.[object_id]   
AND partition_stats.index_id = sys_indexes.index_id  
AND sys_indexes.type_desc <> 'HEAP'  
INNER JOIN sys.objects sys_objects  
ON sys_objects.[object_id] = partition_stats.[object_id]   
INNER JOIN sys.schemas sys_schemas    
ON sys_objects.[schema_id] = sys_schemas.[schema_id]   
AND sys_schemas.name <> 'SYS'  
--WHERE partition_stats.[object_id] = object_id('dbo.TableName')  
ORDER BY 1,2,3,4  

Я не эксперт, хотя - посмотрите на эту ссылку, чтобы узнать больше об этом, в том числе больше операторов SQL...

http://www.sqlservercentral.com/Forums/Topic404843-793-1.aspx

Другие вопросы по тегам