Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- 11_1_4_SQLServer_Размер таблиц
- --Набор скриптов для знакомства с SQL Server
- --https://infostart.ru/1c/articles/1128594/
- SELECT 'Select ''' + DB_NAME() + '.' + SCHEMA_NAME(SCHEMA_ID) + '.'
- + LEFT(o.name, 128) + ''' as DBName, count(*) as Count From ' + SCHEMA_NAME(SCHEMA_ID) + '.' + o.name
- + ';' AS ' Script generator to get counts for all tables'
- FROM sys.objects o
- WHERE o.[type] = 'U'
- ORDER BY o.name;
- SELECT @@ServerName AS Server ,
- DB_NAME() AS DBName ,
- OBJECT_SCHEMA_NAME(p.object_id) AS SchemaName ,
- OBJECT_NAME(p.object_id) AS TableName ,
- i.Type_Desc ,
- i.Name AS IndexUsedForCounts ,
- SUM(p.Rows) AS Rows
- FROM sys.partitions p
- JOIN sys.indexes i ON i.object_id = p.object_id
- AND i.index_id = p.index_id
- WHERE i.type_desc IN ( 'CLUSTERED', 'HEAP' )
- -- This is key (1 index per table)
- AND OBJECT_SCHEMA_NAME(p.object_id) <> 'sys'
- GROUP BY p.object_id ,
- i.type_desc ,
- i.Name
- ORDER BY SchemaName ,
- TableName;
- SELECT @@ServerName AS ServerName ,
- DB_NAME() AS DBName ,
- OBJECT_SCHEMA_NAME(ddps.object_id) AS SchemaName ,
- OBJECT_NAME(ddps.object_id) AS TableName ,
- i.Type_Desc ,
- i.Name AS IndexUsedForCounts ,
- SUM(ddps.row_count) AS Rows
- FROM sys.dm_db_partition_stats ddps
- JOIN sys.indexes i ON i.object_id = ddps.object_id
- AND i.index_id = ddps.index_id
- WHERE i.type_desc IN ( 'CLUSTERED', 'HEAP' )
- -- This is key (1 index per table)
- AND OBJECT_SCHEMA_NAME(ddps.object_id) <> 'sys'
- GROUP BY ddps.object_id ,
- i.type_desc ,
- i.Name
- ORDER BY SchemaName ,
- TableName;
- ------
- -- размер хранимых данных в таблицах
- SELECT
- a3.name AS [schemaname],
- a2.name AS [tablename],
- a1.rows as row_count,
- (a1.reserved + ISNULL(a4.reserved,0))* 8 AS [reserved],
- a1.data * 8 AS [data],
- (CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data THEN (a1.used + ISNULL(a4.used,0)) - a1.data ELSE 0 END) * 8 AS [index_size],
- (CASE WHEN (a1.reserved + ISNULL(a4.reserved,0)) > a1.used THEN (a1.reserved + ISNULL(a4.reserved,0)) - a1.used ELSE 0 END) * 8 AS [unused]
- FROM
- (SELECT
- ps.object_id,
- SUM (
- CASE
- WHEN (ps.index_id < 2) THEN row_count
- ELSE 0
- END
- ) AS [rows],
- SUM (ps.reserved_page_count) AS reserved,
- SUM (
- CASE
- WHEN (ps.index_id < 2) THEN (ps.in_row_data_page_count + ps.lob_used_page_count + ps.row_overflow_used_page_count)
- ELSE (ps.lob_used_page_count + ps.row_overflow_used_page_count)
- END
- ) AS data,
- SUM (ps.used_page_count) AS used
- FROM sys.dm_db_partition_stats ps
- GROUP BY ps.object_id) AS a1
- LEFT OUTER JOIN
- (SELECT
- it.parent_id,
- SUM(ps.reserved_page_count) AS reserved,
- SUM(ps.used_page_count) AS used
- FROM sys.dm_db_partition_stats ps
- INNER JOIN sys.internal_tables it ON (it.object_id = ps.object_id)
- WHERE it.internal_type IN (202,204)
- GROUP BY it.parent_id) AS a4 ON (a4.parent_id = a1.object_id)
- INNER JOIN sys.all_objects a2 ON ( a1.object_id = a2.object_id )
- INNER JOIN sys.schemas a3 ON (a2.schema_id = a3.schema_id)
- WHERE a2.type <> N'S' and a2.type <> N'IT'
- ORDER BY reserved DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement