আমি 2007 এ কানেক্টে কিছু কিছু তৈরি করার জন্য বলেছিলাম। এটি ২০০৮ সালের মুক্তির জন্য প্রত্যাখ্যান করা হয়েছিল এবং পরে কয়েক বছর আগে কানেক্টের মৃত্যুর আগে অবহেলা করা হয়েছিল। আমি এটি এসকিউএল সার্ভারের জন্য নতুন প্রতিক্রিয়া সাইটে এটির সন্ধান করার চেষ্টা করেছি , তবে সেই অনুসন্ধানটি একটি পরম ডাম্পস্টার আগুন। আমার অনুরোধের শিরোনামটি ছিল "সেশন_আইডিতে টেম্প টেবিলের মানচিত্রের জন্য ডিএমভি" - যেহেতু অনুসন্ধানটি কেবলমাত্র OR করতে পারে, "মানচিত্রের টেম্প টেবিল" ফলাফলের 118 পৃষ্ঠাগুলি প্রদান করে। গুগল মনে করছে তারা কানেক্টকে হত্যা করার সময় আইটেমটি কাটা হয়নি বলে মনে হচ্ছে ।
ইতিমধ্যে, এসকিউএল সার্ভার 2005 এবং 2008 এর জন্য আপনার এই তথ্যটি ডিফল্ট ট্রেস থেকে টানতে সক্ষম হওয়া উচিত:
DECLARE @FileName VARCHAR(MAX)
SELECT @FileName = SUBSTRING(path, 0,
LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT
o.name,
o.OBJECT_ID,
o.create_date,
gt.NTUserName,
gt.HostName,
gt.SPID,
gt.DatabaseName,
gt.TEXTData
FROM sys.fn_trace_gettable( @FileName, DEFAULT ) AS gt
JOIN tempdb.sys.objects AS o
ON gt.ObjectID = o.OBJECT_ID
WHERE gt.DatabaseID = 2
AND gt.EventClass = 46 -- (Object:Created Event from sys.trace_events)
AND o.create_date >= DATEADD(ms, -100, gt.StartTime)
AND o.create_date <= DATEADD(ms, 100, gt.StartTime)
এই জোনাথন কেহিয়াস ব্লগ পোস্ট থেকে নির্লজ্জভাবে তুলে নেওয়া হয়েছে ।
স্থান ব্যবহার নির্ধারণ করতে আপনি এই জাতীয় মতামত থেকে ডেটাতে যোগ দিতে আরও উন্নত করতে পারেন sys.db_db_partition_stats
- যেমন:
DECLARE @FileName VARCHAR(MAX)
SELECT @FileName = SUBSTRING(path, 0,
LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT
o.name,
o.OBJECT_ID,
o.create_date,
gt.NTUserName,
gt.HostName,
gt.SPID,
gt.DatabaseName,
gt.TEXTData,
row_count = x.rc,
used_page_count = x.upc
FROM sys.fn_trace_gettable( @FileName, DEFAULT ) AS gt
JOIN tempdb.sys.objects AS o
ON gt.ObjectID = o.OBJECT_ID
INNER JOIN
(
SELECT [object_id], SUM(row_count), SUM(used_page_count)
FROM tempdb.sys.dm_db_partition_stats
WHERE index_id IN (0,1)
GROUP BY [object_id]
) AS x(id, rc, upc)
ON x.id = o.[object_id]
WHERE gt.DatabaseID = 2
AND gt.EventClass = 46 -- (Object:Created Event from sys.trace_events)
AND o.create_date >= DATEADD(ms, -100, gt.StartTime)
AND o.create_date <= DATEADD(ms, 100, gt.StartTime)
এখানে সমস্যাটি একটি টেবিলের নামটি ক্যোয়ারী পাঠ্যের সাহায্যে সম্পর্কিত করার চেষ্টা করছে; এটি কেবল ব্যবহারিক নয়, বেশিরভাগ সময় থেকে ব্যবহারকারী এখনও সেই টেবিলের বিপরীতে কোনও কোয়েরি চালাচ্ছেন না (এটি তৈরি / জনবহুল তৈরির জন্য এখনও চালানো মনে করবেন না)।
যাইহোক, এবং এটি অন্যান্য পাঠকদের জন্য (বা আপনি যখন আপগ্রেড করবেন তখন আপনার জন্য), 2012+ এ ডিফল্ট ট্রেসটি আর টেম্প টেবিল অবজেক্ট তৈরির ট্র্যাক করে না , যদি # টেম্প টেবিলটি হিপ থাকে। নিশ্চিত নয় যে এটি কোনও কাকতালীয় ঘটনা বা সরাসরি সম্পর্কিত যে 2012 সালে শুরু করে সমস্ত টেম্প টেবিলের এখন নেতিবাচকobject_id
। আপনি এই তথ্য সংগ্রহ এবং ট্র্যাক করতে সহায়তা করার জন্য অবশ্যই অবশ্যই বর্ধিত ইভেন্টগুলিতে যেতে পারেন, তবে এটি সম্ভবত অনেকগুলি ম্যানুয়াল কাজ (এবং আমি কেবলমাত্র যাচাই করেছি যে এটি আর ট্রেস হিসাবে ট্র্যাক করা হয়নি - আপনি এটি চয়ন করতে সক্ষম নাও হতে পারেন হয় বর্ধিত ইভেন্টগুলিতে)। ডিফল্ট ট্রেস হবে কোনও পিকে বা অন্যান্য সীমাবদ্ধতার সাহায্যে তৈরি করা হয়েছে, বা সৃজন ইভেন্টের পরে যুক্ত বাধা বা সূচকগুলি সহ তৈরি করা # টেম্প টেবিলগুলি তুলুন, তবে তারপরে আপনাকে উপরের সময় ভিত্তিক বিধিনিষেধগুলি ooিলা করতে হবে (১০০ মাইলের পরে একটি সূচি তৈরি করা যেতে পারে) সৃষ্টি)।
এই সাইটে আরও কিছু উত্তর যা কার্যকর হতে পারে:
এসকিউএল সার্ভার ২০১২ এবং তার উপরে এই তথ্যটি ট্র্যাক করার জন্য আমি একটি কাস্টম এক্সটেন্ডেড ইভেন্টস সেশন দিয়ে ব্লগ করেছি:
এবং পল হোয়াইট সরাসরি পৃষ্ঠাগুলি পড়ার বিষয়ে ব্লগ করেছেন (একেবারে হৃদয়ের হতাশার জন্য নয়, কোনওভাবেই স্বয়ংক্রিয়ভাবে চালানো সহজ নয়):