আমি একটি টেবিলের জন্য পৃষ্ঠাগুলির একটি তালিকা পাওয়ার চেষ্টা করছি যা ROW_OVERFLOW_DATA এর সাথে সারি রয়েছে। আমি অনিবন্ধিত ডিএমভি থেকে বরাদ্দকৃত পৃষ্ঠাগুলির তালিকা পেতে পারি sys.db_db_database_page_allocations
, তবে, DM ডিএমভির আউটপুটে তালিকাভুক্ত কোনও ROW_OVERFLOW_DATA পৃষ্ঠা নেই বলে মনে হয়। এমন কি অন্য কোনও ডিএমভি আছে যা আমি কেবল সনাক্ত করতে পারি না?
সর্বনিম্ন, সম্পূর্ণ এবং (আশাবাদী!) যাচাইযোগ্য উদাহরণ:
USE tempdb;
IF OBJECT_ID(N'dbo.t', N'U') IS NOT NULL
DROP TABLE dbo.t;
GO
CREATE TABLE dbo.t
(
rownum int NOT NULL IDENTITY(1,1)
PRIMARY KEY CLUSTERED
, on_row_data varchar(30) NOT NULL
DEFAULT ('on_row_data')
, off_row_data varchar(MAX) NOT NULL
DEFAULT REPLICATE('A', 20000) --PLENTY BIG ENOUGH!
) WITH (DATA_COMPRESSION = NONE); --not compressing those pages!
INSERT INTO dbo.t DEFAULT VALUES;
DECLARE @ObjectID int = (SELECT o.object_id FROM sys.objects o WHERE o.name = 't');
DECLARE @PageID int;
DECLARE @PageTypeDesc varchar(100);
SELECT FileID = dpa.allocated_page_file_id
, PageID = dpa.allocated_page_page_id
, PageTypeDesc = dpa.page_type_desc
FROM sys.dm_db_database_page_allocations(DB_ID(), @ObjectID, NULL, NULL, 'DETAILED') dpa
আউটপুট দেখে মনে হচ্ছে:
╔════════╦════════╦══════════════╗ ║ ফাইলআইডি ║ পেজআইডি ║ পেজটাইপডেস্ক ║ ╠════════╬════════╬══════════════╣ ║ 1 ║ 1598 ║ আইএএমপেজ ║ ║ ║ 3 ║ 105368 ║ ডেটা_পৃষ্ঠা ║ ║ ║ 3 ║ 105369 ║ নুল ║ ║ 3 ║ 105370 ║ নুল ║ ║ 3 ║ 105371 ║ নুল ║ ║ 3 ║ 105372 ║ নুল ║ ║ 3 ║ 105373 ║ নুল ║ ║ 3 ║ 105374 ║ নুল ║ ║ 3 ║ 105375 ║ নুল ║ ╚════════╩════════╩══════════════╝
অনুপস্থিত ROW_OVERFLOW_DATA পৃষ্ঠা ব্যতীত অন্যটি কী তা বোঝায়। আমাদের কাছে একটি একক সূচক বরাদ্দ মানচিত্র পৃষ্ঠা এবং 8KB ডেটা পৃষ্ঠাগুলির একটি সম্পূর্ণ এক্সটেন্টস রয়েছে, যা কেবলমাত্র বরাদ্দকৃত পৃষ্ঠাগুলির মধ্যে একটি মাত্র with
একইভাবে, আমি যদি sys.fn_PhysLocCracker
প্রতিটি সারি বিদ্যমান সেখানে পৃষ্ঠাটি দেখানোর জন্য যদি অনোধিত ফাংশনটি ব্যবহার করি :
SELECT *
FROM dbo.t
CROSS APPLY sys.fn_PhysLocCracker(%%PHYSLOC%%)
আমি কেবল DATA_PAGE
তালিকাবদ্ধ দেখতে পাচ্ছি :
╔════════╦═════════════╦═════════════════════╦════ ═════╦═════════╦═════════╗ ║ রোউনাম ║ অন_রো_ডাটা ║ অফ_রো_ডাটা ║ ফাইল_আইডি ║ পেজ_আইডি ║ স্লট_আইডি ║ ╠════════╬═════════════╬═════════════════════╬════ ═════╬═════════╬═════════╣ Row 1 ║ অন_রো_ডাটা ║ এএএএএএএএএএএএএএএএএএএএএ ║ 3 ║ 105368 ║ 0 ║ ╚════════╩═════════════╩═════════════════════╩════ ═════╩═════════╩═════════╝
তেমনি, আমি যদি ব্যবহার DBCC IND(database, table, index)
করি তবে আমি কেবল দুটি তালিকাভুক্ত পৃষ্ঠাটি দেখতে পাচ্ছি:
DBCC IND (tempdb, t, 1);
আউটপুট:
╔═════════╦═════════╦════════╦════════╦═══════════ ═╦═════════╦═════════════════╦════════════════════ ═╦════════════════╦══════════╦════════════╦═══════ ══════╦═════════════╦═════════════╦═════════════╦═ ═╗ F পেজফিড ║ পেজপিআইডি ║ আইএএমএফআইডি ║ আইএএমপিআইডি ║ অবজেক্টআইডি ║ সূচক ║ পার্টিশন নাম্বার ║ পার্টিশনআইডি ║ আইম_চেইন_ টাইপ ║ পেজ টাইপ ║ সূচিপত্র ║ নেক্সটপেজএফআইডি ║ নেক্সটপেজপিআইডি ║ প্রাকপেজফিড F প্রিপেজপিড ╠═════════╬═════════╬════════╬════════╬═══════════ ═╬═════════╬═════════════════╬════════════════════ ═╬════════════════╬══════════╬════════════╬═══════ ══════╬═════════════╬═════════════╬═════════════╬═ ═╣ ║ 1 ║ 1598 ║ NULL ║ NULL ║ 2069582411 ║ 1 ║ 1 ║ 6989586877272752128 ║ In-row data ║ 10 ║ NULL ║ 0 ║ 0 ║ 0 ║ 0 ║ ║ ║ 3 ║ 105368 ║ 1 ║ 1598 ║ 2069582411 ║ 1 ║ 1 ║ 6989586877272752128 ║ In-row data ║ 1 ║ 0 ║ 0 ║ 0 ║ 0 ║ 0 ║ ║ ╚═════════╩═════════╩════════╩════════╩════════════╩═════════╩═════════════════╩═════════════════════╩════════════════╩══════════╩════════════╩═════════════╩═════════════╩═════════════╩═════════════╩══╝
যদি আমি ব্যবহার করে আসল পৃষ্ঠাগুলি DBCC PAGE
দেখে থাকি তবে মনে হয় যে কোনও পৃষ্ঠাতে ROW_OVERFLOW_DATA রয়েছে সে সম্পর্কে এখনও আমি কিছুই দেখতে পাচ্ছি না - আমি নিশ্চিত যে এটি অবশ্যই সেখানে থাকবে, আমি সম্ভবত ঠিক কী জানি তা জানি না:
DBCC PAGE (tempdb, 3, 105368 , 3) WITH TABLERESULTS;
ফলাফলগুলি এখানে ফিট করার জন্য খুব বড়, যদি আমি মেমরি ডাম্প সারিগুলি অন্তর্ভুক্ত করি তবে এটি শিরোনামের আউটপুট:
╔══════════════╦════════════════════════════════╦═ ══════════════════════════════╦═══════════════════ ════════════╗ ║ প্যারেন্ট অবজেক্ট ║ অবজেক্ট ║ ফিল্ড ║ মান AL ╠══════════════╬════════════════════════════════╬═ ══════════════════════════════╬═══════════════════ ════════════╣ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ পৃষ্ঠা পৃষ্ঠা ║ 0x000002431A8A2000 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ ভ্যাশ ║ 0x0000000000000000 ║ ║ বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বপেজেনো 3 (3: 105368) ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বিডিবিড ║ 2 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ প্রবন্ধ ║ 0 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বিসিপুটিক্স ║ 0 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বিস্যাম্পলকাউন্ট ║ 0 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বুস 1 ║ 63172 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ bstat ║ 0x10b ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ ব্লগ ║ 0x212121cc ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বনেস্ট ║ 0x0000000000000000 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ বিডার্টি কনটেক্সট ║ 0x000002435DA77160 ║ U বুফার: ║ BUF @ 0x000002437E86D5C0 ║ bstat2 ║ 0x0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_পেজ আইডি ║ (3: 105368) ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_হেডার সংস্করণ ║ 1 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_প্রকার ║ 1 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_typeFlagBits ║ 0x0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_লেভেল ║ 0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_flagBits ║ 0xc000 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_objId (AllocUnitId.idObj) ║ 3920762 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_indexId (AllocUnitId.idInd) ║ 512 ║ ║ পৃষ্ঠার শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ মেটাডেটা: বরাদ্দ করুন it 144115445026914304 ║ ║ পৃষ্ঠার শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ মেটাডেটা: পার্টিশনআইডি ║ 6989586877272752128 ║ ║ পৃষ্ঠার শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ মেটাডেটা: সূচকগুলি ║ 1 ║ ║ পৃষ্ঠার শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ মেটাডেটা: অবজেক্টআইডি ║ 2069582411 ║ ║ পৃষ্ঠার শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_প্রিভ পৃষ্ঠা ║ (0: 0) ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_nextPage ║ (0: 0) ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ পিনমিলেন ║ 8 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_slotCnt ║ 1 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_freeCnt ║ 66 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_ফ্রিডেটা ║ 8124 ║ ║ পৃষ্ঠার শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_remittedCnt ║ 0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_এলএসএন 36 (36: 47578: 1) ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ এম_এক্স্যাক্ট সংরক্ষিত ║ 0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_xdesId ║ (0: 0) ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_ghostRecCnt ║ 0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ m_tornBits ║ 0 ║ ║ পৃষ্ঠা শিরোনাম: @ পৃষ্ঠা @ 0x000002431A8A2000 ║ ডিবি ফ্রেগ আইডি ║ 1 ║ ║ পৃষ্ঠার শিরোনাম: oc বরাদ্দের স্থিতি ║ গ্যাম (৩: ২) LOC অনুমোদিত ║ ║ পৃষ্ঠার শিরোনাম: oc বরাদ্দের স্থিতি ║ এসজিএএম (3: 3) AL লকড নেই ║ ║ পৃষ্ঠার শিরোনাম: oc বরাদ্দের স্থিতি ║ পিএফএস (3: 105144) x 0x40 বরাদ্দ 0_PCT_FULL ║ ║ পৃষ্ঠা শিরোনাম: oc বরাদ্দের স্থিতি ║ ডিআইএফএফ (3: 6) CH পরিবর্তন হয়নি ║ ║ পৃষ্ঠার শিরোনাম: oc বরাদ্দের স্থিতি ║ এমএল (3: 7) M এমএলএলজিড নয় ║ ║ পৃষ্ঠা শিরোনাম: ║ স্লট 0 অফসেট 0x60 দৈর্ঘ্য 8028 ║ রেকর্ডের ধরণ ║ PRIMARY_RECORD ║ ║ পৃষ্ঠার শিরোনাম: ║ স্লট 0 অফসেট 0x60 দৈর্ঘ্য 8028 ║ রেকর্ড বৈশিষ্ট্য ║ নাল_বিটম্যাপ ভারিবেল_কুলুমনেস ║ ║ পৃষ্ঠার শিরোনাম: ║ স্লট 0 অফসেট 0x60 দৈর্ঘ্য 8028 ║ রেকর্ড আকার ║ 8028 28 ╚══════════════╩════════════════════════════════╩═ ══════════════════════════════╩═══════════════════ ════════════╝