এটি একটি পরিচিত সত্য যে ডিএমভিগুলি পৃষ্ঠাগুলির সংখ্যা এবং সারিগুলির গণনা সম্পর্কিত সঠিক তথ্য রাখে না। তবে, যখন আপনার পরিসংখ্যান আপডেট হয়েছে, কেন তারা তা করবে না তা আমি দেখতে পাচ্ছি না।
আমি একটি মনিটরিং সরঞ্জামে কাজ করছি, প্রতিটি সূচক এবং ডেটা ইত্যাদির ডিস্ক আকার জানতে চাই Event শেষ পর্যন্ত আমি সঠিক ফিল ফ্যাক্টর এবং অন্যান্য জিনিস ইত্যাদি সন্ধান করতে চাই
আমার ফাংশন দ্বারা ব্যবহৃত স্থান এবং পুরাতন sp_spaceused স্থান স্থান ব্যবহারের ক্ষেত্রে কিছুটা আলাদা তবে রেকর্ড গণনায় নয়।
আমার সিলেক্টে কিছু অনুপস্থিত আছে কি দেখতে পাচ্ছেন?
এটি হল স্পেস স্পেসযুক্ত (তারপর আমি সংখ্যাগুলিকে এমবিতে রূপান্তর করি):
sp_spaceused 'tblBOrderRelationship'
go
select 318008/1024.00 AS reserved,
140208/1024.00 AS data,
177048/1024.00 AS index_size,
752/1024.00 AS unused
তবে আমি যখন আমার নির্বাচন, নীচের চিত্রের নীচে কোড চালাচ্ছি তখন আমি কিছুটা আলাদা চিত্র পেয়েছি different
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT
schema_name(t.schema_id) as SchemaName,
t.NAME AS TableName,
t.type_desc,
t.is_ms_shipped,
t.is_published,
t.lob_data_space_id,
t.filestream_data_space_id,
t.is_replicated,
t.has_replication_filter,
t.is_merge_published,
t.is_sync_tran_subscribed,
--t.is_filetable,
i.name as indexName,
i.type_desc,
i.is_unique,
i.is_primary_key,
i.is_unique_constraint,
i.fill_factor,
i.is_padded,
sum(p.rows) OVER (PARTITION BY t.OBJECT_ID,i.index_id) as RowCounts,
sum(a.total_pages) OVER (PARTITION BY t.OBJECT_ID,i.index_id) as TotalPages,
sum(a.used_pages) OVER (PARTITION BY t.OBJECT_ID,i.index_id) as UsedPages,
sum(a.data_pages) OVER (PARTITION BY t.OBJECT_ID,i.index_id) as DataPages,
(sum(a.total_pages) OVER (PARTITION BY t.OBJECT_ID,i.index_id) * 8) / 1024 as TotalSpaceMB,
(sum(a.used_pages) OVER (PARTITION BY t.OBJECT_ID,i.index_id) * 8) / 1024 as UsedSpaceMB,
(sum(a.data_pages) OVER (PARTITION BY t.OBJECT_ID,i.index_id) * 8) / 1024 as DataSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.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
t.NAME NOT LIKE 'dt%' AND
i.OBJECT_ID > 255
AND T.NAME = 'tblBOrderRelationship'
চিএ
সূচকের নাম সহ আরও বড় ছবি
ফলাফলগুলি পরীক্ষা করার জন্য এখন কিছু গণনা করা হচ্ছে:
--==================================
-- the figures from sp_spaceused
--==================================
select 318008/1024.00 AS reserved,
140208/1024.00 AS data,
177048/1024.00 AS index_size,
752/1024.00 AS unused
--==================================
-- the figures from my select
--==================================
select 137+61+56+54 AS reserved,
137 AS data,
61+56+54 AS index_size
এটি খুব বেশি দূরে নয়, সত্যই বাদে আমি অব্যবহৃত স্থান গণনা করি না!
এটি সঠিক করতে আমি কী করতে পারি?
পরিবর্তনের পরে:
আমি 1024 প্রতি 1024.00 দ্বারা প্রতিস্থাপন করার পরে ফলাফলগুলি আরও অনেক নির্ভুল। আমি লক্ষ্য করেছি যে রেকর্ডগুলি প্রশ্নাবদ্ধ টেবিলে inোকানো হয়েছে এবং স্পষ্টতই পরিসংখ্যানগুলি এতটা আপ টু ডেট নয়, তবে এখনও ফলাফল মেলে (1 এমবি ব্যবধানের অধীনে - যা আমার পক্ষে সব ঠিক আছে)
নতুন ফলাফল সেটগুলি হ'ল:
--==================================
-- the figures from sp_spaceused
--==================================
select
318072 /1024.00 AS reserved,
140208 /1024.00 AS data,
177096 /1024.00 AS index_size,
768 /1024.00 AS unused
go
--==================================
-- the figures from my select
--==================================
select 137.7578125+61.7968750+56.4218750+54.6406250 as reserved,
137.7578125 as data,
61.7968750+56.4218750+54.6406250 as index_size