কীভাবে ডিবিসিসি শ্রিনকফিলের অগ্রগতি পরীক্ষা করবেন?


31

DBCC SHRINKFILEবিবৃতিটির অগ্রগতি খুঁজে পাওয়ার কোনও উপায় আছে কি ?

এখানে আমি এটি চালিয়ে যাচ্ছিলাম

ডিবিসিসি সঙ্কোচিত ফাইল ('মেইন_ডাটা', 250000)

আমি এসকিউএল সার্ভার 2005 এবং 2008 উভয়ের উপরে উপরের বিবৃতি চালিয়ে যাচ্ছি।

[আপডেট] আমি যে ক্যোয়ারীটি চালিয়ে যাচ্ছি তা অগ্রগতি এবং পাঠ্য যাচাই করতে দৌড়ে গেছে।

select  T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id)
        , R.cpu_time, R.total_elapsed_time, R.percent_complete
from    sys.dm_exec_requests R
        cross apply sys.dm_exec_sql_text(R.sql_handle) T

উত্তর:


33

আপনি কি সিস্টেমে শতাংশ_ অসম্পূর্ণ পরীক্ষা করেছেন?


কীভাবে সেই ডিএমভি থেকে ফিরে আসা ডেটা পড়তে হবে তা পরীক্ষা করে দেখছি।
নাচ 2die

14

হারুনের উত্তর স্পট রয়েছে তবে আমি আপনাকে ডেটা ফাইল সঙ্কুচিত করা থেকে বিরত রাখতে সাবধান করতে চাই কারণ এটি ভয়াবহ পারফরম্যান্স সমস্যার কারণ হতে পারে। আমি সঙ্কুচিত কোডটির মালিক ছিলাম, তাই আমি জানি আমি কী সম্পর্কে কথা বলছি। আমি গতকাল লিখেছিলাম এই ব্লগ পোস্টটি চেকআউট করুন যা আপনাকে আমার অর্থ বোঝায় এবং আসলে সঙ্কুচিত না করে কীভাবে সঙ্কুচিত করতে হবে তার পরামর্শ দেয়: আপনার ডাটা ফাইলগুলি সঙ্কুচিত করা উচিত নয় কেন

আশাকরি এটা সাহায্য করবে!

পিএস আরও একটি জিনিস যা খুব বেশি সময় নিচ্ছে এবং শতাংশ_ অসম্পূর্ণতা বাড়ছে না তা পরীক্ষা করে দেখুন - ব্লক করার জন্য দেখুন look সঙ্কুচিত হওয়া লকগুলির প্রয়োজনীয়তার জন্য এটি অসীম-অপেক্ষা করবে।


4
"আমি সঙ্কুচিত কোডের মালিক ছিলাম, তাই আমি কী বিষয়ে কথা বলছি তা আমি জানি" " চমৎকার!
স্প্ল্যাটনে

1
G০০ জি ডেটা ফাইল সঙ্কুচিত করতে এটি চিরতরে নিচ্ছিল ... আমি এটিকে আবার পড়ব এবং সূচক ডিফ্র্যাগ ব্যবহারের বিষয়ে বিবেচনা করব। ধন্যবাদ পল!
নাচ 2 ডি

1
মনে রাখবেন আমি এই উত্তরটির কারণটি খুঁজে পেয়েছি যে আমি ডিবিসিসি শ্রিনকফিল (মাইফাইল, এমপিটিওয়াইফিল) এর অগ্রগতি খুঁজছিলাম ... নতুন ড্রাইভে ফাইলগ্রুপে একটি ফাইল যুক্ত করে, ড্রাইভের মধ্যে ডেটা সরিয়ে নিচ্ছি, আসলটি খালি করে ছাড়ছি।
স্যাম

@ পল, আমি পর্যবেক্ষণ করছি যে কোনও ফাইলকে একটি লক্ষ্য আকারে সঙ্কুচিত করতে কিছু সময় লাগে তবে সম্পূর্ণ হয় (আমি এটি ফাইলের আকারের দিকে চেয়ে দেখছি) - তবে এটি সফলভাবে সফল হতে দেখলেও, ঝাঁকুনির প্রক্রিয়াটি এখনও অব্যাহত রয়েছে এবং চিরকাল চলে runs ছোট (কিছু এমবি বা বৃহত্তর (1 গিগাবাইট) পরিমাণে সংকোচনের পরিমাণ) একই। sys.dm_exec_requests অবিচ্ছিন্ন ক্রিয়াকলাপ দেখায়, রিসোর্স লকগুলি পরিবর্তন করে যখন একই সময়ে শতাংশ_সম্পূর্ণতা প্রায় 32,8% এর কাছাকাছি থাকে। এই মুহুর্তে আমি প্রক্রিয়াটি বাতিল করতে পারি এবং অফিফলভাবে একটি সাফল্য উদযাপন করি - জেনেও যে কিছু এখনও চলছে ... কোন সমস্যা কি ভুল? 2008r2
Magier

ব্লগ পোস্টের লিঙ্কটি নষ্ট হয়ে গেছে, এটি এখন বৈধ বলে মনে হচ্ছে: sqlskills.com/blogs/paul/…
জোনাথন গিলবার্ট

5
SELECT 
    d.name,
    percent_complete, 
    session_id,
    start_time, 
    status, 
    command, 
    estimated_completion_time, 
    cpu_time, 
    total_elapsed_time
FROM 
    sys.dm_exec_requests E left join
    sys.databases D on e.database_id = d.database_id
WHERE
    command in ('DbccFilesCompact','DbccSpaceReclaim')

2
আপনার
উত্তরটিতে

একটি দুর্দান্ত ক্যোয়ারির জন্য +1, তবে -২ সত্যতার ছয় বছর পরে ওপি কী বলেছে তার পুনরাবৃত্তি করার জন্য। যদি আপনার জিজ্ঞাসা কিছুটা বিবেচনার চেয়ে তার চেয়ে ভাল হয় তবে দয়া করে এটি বর্ণনা করুন, অন্যথায় এটি কেবল স্থান নষ্ট করে।

5

নীচের অনুসন্ধানগুলি আপনাকে এর মতো ফলাফল দেখাবে: ট্র্যাক ডিবিসিসি সঙ্কুচিত স্থিতি

-------------------------------
--Track DBCC shrink status
-------------------------------
select
a.session_id
, command
, b.text
, percent_complete
, done_in_minutes = a.estimated_completion_time / 1000 / 60
, min_in_progress = DATEDIFF(MI, a.start_time, DATEADD(ms, a.estimated_completion_time, GETDATE() ))
, a.start_time
, estimated_completion_time = DATEADD(ms, a.estimated_completion_time, GETDATE() )
from sys.dm_exec_requests a
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) b
where command like '%dbcc%'

3

আগ্রহীদের জন্য আমার নিজের সংস্করণ যুক্ত করা, এটি মিলসেকেন্ড সময় কলামগুলিকে আরও পঠনযোগ্য মিনিট এবং সেকেন্ডে রূপান্তর করে।

select 
[status],
start_time,
convert(varchar,(total_elapsed_time/(1000))/60) + 'M ' + convert(varchar,(total_elapsed_time/(1000))%60) + 'S' AS [Elapsed],
convert(varchar,(estimated_completion_time/(1000))/60) + 'M ' + convert(varchar,(estimated_completion_time/(1000))%60) + 'S' as [ETA],
command,
[sql_handle],
database_id,
connection_id,
blocking_session_id,
percent_complete
from  sys.dm_exec_requests
where estimated_completion_time > 1
order by total_elapsed_time desc

-1

অথবা আপনি কেবল এক্সিকিউট এসপি_ওহো 3 চালাতে পারেন।


2
এটির আরও ভাল ব্যাখ্যা দরকার।
সোভেন

-1

sp_Woisactive - এখানে "শতাংশ_কমম্পল্ট" কলাম রয়েছে


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.