2012-10-12 28 views
5

Veritabanımdaki en büyük tabloları sıkıştırmaya çalışıyorum. SP_ForEachDB saklı yordamını çalıştırarak bunu yapacağım. Ancak, toplam sayfa sayısını nasıl görüntüleyeceğimi anlayamıyorum. Tüm tablolar için böyle devamDBCC'yi kullanmadan her SQL tablosunda sayfa sayısını belirleme

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

ve: Ben ... Bu sorgu ile döner

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 

satır sayısı elde edebilir.

Aynı şeyi arıyorum, ancak dönen sayfa Sayımı yerine.

cevap

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

Mükemmel, Teşekkür ederim. –

İlgili konular