আমি কোনও ডাটাবেজে থাকা বিভিন্ন HoBTs (উভয় প্রান্তিককরণ এবং অ-বিন্যাসিত) এর জন্য বরাদ্দ ইউনিটগুলির মধ্যে কোন ডাটাবেস ফাইল রয়েছে তার একটি গ্রানুলার ভিউ পাওয়ার প্রত্যাশা করছিলাম।
আমি সর্বদা ব্যবহার করা কোয়েরি (নীচে দেখুন) যতক্ষণ না আমরা ফাইলগোষ্ঠে একাধিক ডেটা ফাইল তৈরি করা শুরু করি এবং আমি কীভাবে ফাইলগোষ্ঠী স্তরের মতো দানাদার পেতে পারি তা কেবলমাত্র ঠিক করতে সক্ষম হয়েছি।
select
SchemaName = sh.name,
TableName = t.name,
IndexName = i.name,
PartitionNumber = p.partition_number,
IndexID = i.index_id,
IndexDataspaceID = i.data_space_id,
AllocUnitDataspaceID = au.data_space_id,
PartitionRows = p.rows
from sys.allocation_units au
join sys.partitions p
on au.container_id = p.partition_id
join sys.indexes i
on i.object_id = p.object_id
and i.index_id = p.index_id
join sys.tables t
on p.object_id = t.object_id
join sys.schemas sh
on t.schema_id = sh.schema_id
where sh.name != 'sys'
and au.type = 2
union all
select
sh.name,
t.name,
i.name,
p.partition_number,
i.index_id,
i.data_space_id,
au.data_space_id,
p.rows
from sys.allocation_units au
join sys.partitions p
on au.container_id = p.hobt_id
join sys.indexes i
on i.object_id = p.object_id
and i.index_id = p.index_id
join sys.tables t
on p.object_id = t.object_id
join sys.schemas sh
on t.schema_id = sh.schema_id
where sh.name != 'sys'
and au.type in (1,3)
order by t.name, i.index_id,p.partition_number;
যাইহোক, কোনও ফাইলগ্রুপে একাধিক ফাইল থাকা অবস্থায় এই কোয়েরিটি কাজ করবে না কারণ আমি কেবলমাত্র একটি ডেটা স্পেসের সাথে একটি বরাদ্দ ইউনিট এবং শেষ পর্যন্ত একটি ফাইলগ্রুপের সাথে সম্পর্কিত করতে পারি। আমি জানতে চাই যে অন্য কোনও ডিএমভি বা ক্যাটালগ রয়েছে যা আমি অনুপস্থিত যে আমি ফাইলগ্রুপের কোন ফাইলটিতে একটি বরাদ্দ ইউনিট রয়েছে তা আরও চিহ্নিত করতে ব্যবহার করতে পারি।
এই প্রশ্নের পিছনে প্রশ্নটি হ'ল আমি পার্টিশনযুক্ত কাঠামোকে সংকুচিত করার প্রকৃত প্রভাবগুলি মূল্যায়নের চেষ্টা করছি। আমি জানি যে আমি এই তথ্যটি পেতে FILEPROPERTY(FileName,'SpaceUsed')
ফাইলের জন্য আগে এবং পরে ব্যবহার করতে পারি sys.allocation_units.used_pages/128.
, তবে অনুশীলন নিজেই আমাকে বিস্মিত করেছিল যে আমি একটি নির্দিষ্ট বরাদ্দ ইউনিট থাকা নির্দিষ্ট ফাইলটি সনাক্ত করতে পারি কিনা।
আমি %%physloc%%
আশা করতে পারি যে এটি সাহায্য করতে পারে তবে আমি যা খুঁজছি তা আমার কাছে যথেষ্ট আসে না। নীচের লিঙ্কগুলি অ্যারোন বার্ট্র্যান্ড সরবরাহ করেছিল :
- আমার সারিগুলি কোথায়? - %% ফিজলোক %% ভার্চুয়াল কলাম (sqlity.net) ব্যবহার করে
- এসকিউএল সার্ভার ২০০৮: পল রান্ডাল দ্বারা নতুন (অনাকাঙ্ক্ষিত) শারীরিক সারি লোকেটার ফাংশন