আমাদের ইটিএল প্রবাহের একটি দীর্ঘ-চলমান নির্বাচন নির্বাচন-বিবৃতি রয়েছে, এটি ফ্লাইতে একটি টেবিল তৈরি করে এবং কয়েকশ মিলিয়ন রেকর্ডের সাহায্যে এটিকে জনপ্রিয় করে তুলছে।
বিবৃতিটি দেখতে কিছুটা এমন দেখাচ্ছে SELECT ... INTO DestTable FROM SrcTable
পর্যবেক্ষণের উদ্দেশ্যে, আমরা এই বিবৃতিটির অগ্রগতি সম্পর্কে মোটামুটি ধারণা পেতে চাই, যখন এটি কার্যকর করা হচ্ছে (আনুমানিক রাউকাউন্ট, বাইটের লিখিত সংখ্যা, বা অনুরূপ)।
আমরা নিম্নলিখিতগুলি চেষ্টা করেছিলাম কোনও লাভ হয়নি:
-- Is blocked by the SELECT INTO statement:
select count(*) from DestTable with (nolock)
-- Returns 0, 0:
select rows, rowmodctr
from sysindexes with (nolock)
where id = object_id('DestTable')
-- Returns 0:
select rows
from sys.partitions
where object_id = object_id('DestTable')
তদ্ব্যতীত, আমরা লেনদেনটি দেখতে পাচ্ছি sys.dm_tran_active_transactions
, তবে আমি প্রদত্ত ক্ষতিগ্রস্থ সারিগুলির গণনা পাওয়ার কোনও উপায় খুঁজে পাইনি transaction_id
( @@ROWCOUNT
সম্ভবত এর অনুরূপ কিছু , তবে transaction_id
যুক্তি হিসাবে)।
আমি বুঝতে পারি যে এসকিউএল সার্ভারে নির্বাচন নির্বাচন-বিবৃতি উভয়ই একটি ডিডিএল এবং একটিতে ডিএমএল বিবৃতি, এবং এর মতো, অন্তর্ভুক্ত টেবিল তৈরি করা একটি লকিং অপারেশন হবে। আমি এখনও মনে করি বিবৃতি চলাকালীন কিছু প্রগতি সম্পর্কিত তথ্য পাওয়ার জন্য অবশ্যই কিছু চতুর উপায় থাকতে হবে।