2012-10-12 14 views
5

Próbuję skompresować największe tabele w mojej bazie danych. Zrobię to, uruchamiając procedurę składowaną SP_ForEachDB. Nie mogę jednak dowiedzieć się, jak wyświetlić całkowitą liczbę stron. Mogę uzyskać zliczania wierszy z tego zapytania ...Określanie liczby stron w każdej tabeli SQL bez użycia DBCC

USE DEVELOP04_HiltonUS 

GO 

SELECT 
    [TableName] = so.name, 
    [RowCount] = MAX(si.rows) 
FROM 
    sysobjects so, 
    sysindexes si 
WHERE 
    so.xtype = 'U' 
    AND 
    si.id = OBJECT_ID(so.name) 
GROUP BY 
    so.name 
ORDER BY 
    2 DESC 

która zwraca:

  TABLE NAME ROW COUNT 
      PlannedShift 38268660 
     BudgetStaffStat 19353104 
      BudgetKBIStat 14142631 
EmployeeShiftAdjustment 13493745 
      Requirement 11020921 
    EmployeeShiftError 6857235 
     JobclassLaborData 5638692 

i tak dalej dla wszystkich moich tabel.

Szukam tej samej rzeczy, ale zamiast tego wraca liczba stron.

Odpowiedz

11
SELECT OBJECT_SCHEMA_NAME(s.object_id) schema_name, 
     OBJECT_NAME(s.object_id) table_name, 
     SUM(s.used_page_count) used_pages, 
     SUM(s.reserved_page_count) reserved_pages 
FROM sys.dm_db_partition_stats s 
JOIN sys.tables t 
     ON s.object_id = t.object_id 
GROUP BY s.object_id 
ORDER BY schema_name, 
     table_name; 
+0

Doskonały, dziękuję. –

Powiązane problemy