سؤال

من السهل التحقق من أحجام التخزين للجداول والفهارس، يمكنك النقر بزر الماوس الأيمن فوق كائن الجدول على مستكشف SSMS وفويلا، تظهر التفاصيل في منبثق لطيف.

ولكن نظرا لأن المشاهدات المفهرسة يتم عرض نفس المشاهدات العادية، لا توجد معلومات تخزين Avaiable في SSMS لتظهر لي الحجم الحالي الذي تناوله على القرص.

أدخل وصف الصورة هنا

هل هناك طريقة تغيير لحساب الحجم (قل عبر نظام SP أو طريقة مماثلة)؟

شكرا.

هل كانت مفيدة؟

المحلول

EXEC sys.sp_spaceused @objname = N'dbo.YourView'

نصائح أخرى

You can use this query here to find your data for any given indexed view:

SELECT 
    v.NAME AS ViewName,
    i.name AS IndexName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    SUM(a.data_pages) * 8 AS DataSpaceKB
FROM 
    sys.views v
INNER JOIN      
    sys.indexes i ON v.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 
    v.Name = 'YourViewNameHere' --View name only, not 'schema.viewname'
    AND
    i.index_id = 1   -- clustered index, remove this to see all indexes
GROUP BY 
    v.NAME, i.object_id, i.index_id, i.name, p.Rows

Gives an output something like

ViewName      IndexName     RowCounts  TotalSpaceKB  UsedSpaceKB  DataSpaceKB
YourViewName  IX_YourView     1771         592           552          536
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top