راهنمای جامع DMVهای پایش کارایی و مصرف فضای TempDB در SQL Server
دامنه راهنما و نتیجه یادگیری
این مقاله مادر خانواده «TempDB Performance DMVs» را برای ظرفیت TempDB، Session، Task و Version Store سامان میدهد. هدف، فهرست نامها نیست؛ هر عضو بر اساس Scope، خروجی، مجوز و اثر عملیاتی مقایسه میشود.
راهنما برای DBA، توسعهدهنده ارشد و کارشناس عملیات است. در پایان میتوانید میان 7 عضو خانواده انتخاب آگاهانه داشته باشید و برای جزئیات وارد مقاله فرزند شوید.
ابتدا نقشه و جدول مقایسه را بخوانید، سپس شش سناریوی ترکیبی را اجرا کنید و هر اقدام تغییردهنده را از Query تشخیصی جدا نگه دارید.
دسترسی سریع
- تعریف خانواده
- معرفی اعضا
- جدول مقایسه
- شش مثال ترکیبی
- Performance و خطا
- FAQ و چکلیست
تعریف مجموعه و جایگاه معماری
TempDB Performance DMVs مجموعهای برای ظرفیت TempDB، Session، Task و Version Store است. تفاوت اعضا در سطح Session، Database یا Server، ماندگاری داده و میزان اثر بر موتور SQL Server قرار دارد.
مدل انتخاب چهار پرسش دارد: مشاهده یا تغییر؟ Scope چیست؟ خروجی لحظهای یا ماندگار است؟ و در صورت شکست چه Rollbackی وجود دارد؟
هیچ عضو مجموعه بهتنهایی علت ریشهای را اثبات نمیکند؛ داده باید با زمان، بار کاری، Plan، Wait، Log و تنظیمات نسخه همبسته شود.
نقشه نخست نمای Bird’s-eye اعضای خانواده را همراه محور مقایسه سربار، Scope و قابلیت خودکارسازی نمایش میدهد.
دستهبندی اعضا و لینک آموزش
sys.dm_db_file_space_usage
sys.dm_db_file_space_usage یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_db_file_space_usage با مثالهای عملی
sys.dm_db_session_space_usage
sys.dm_db_session_space_usage یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_db_session_space_usage با مثالهای عملی
sys.dm_db_task_space_usage
sys.dm_db_task_space_usage یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_db_task_space_usage با مثالهای عملی
sys.dm_tran_version_store
sys.dm_tran_version_store یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_tran_version_store با مثالهای عملی
sys.dm_tran_top_version_generators
sys.dm_tran_top_version_generators یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_tran_top_version_generators با مثالهای عملی
sys.dm_tran_active_snapshot_database_transactions
sys.dm_tran_active_snapshot_database_transactions یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_tran_active_snapshot_database_transactions با مثالهای عملی
sys.dm_tran_persistent_version_store_stats
sys.dm_tran_persistent_version_store_stats یک DMV تخصصی برای مشاهده مصرف TempDB یا Version Store است و Snapshot لحظهای از وضعیت جاری موتور ارائه میکند. ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار.
آموزش کامل sys.dm_tran_persistent_version_store_stats با مثالهای عملی
جدول مقایسه تصمیممحور
| موضوع | کاربرد اصلی | نکته کلیدی | لینک آموزش |
|---|
| sys.dm_db_file_space_usage | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
| sys.dm_db_session_space_usage | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
| sys.dm_db_task_space_usage | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
| sys.dm_tran_version_store | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
| sys.dm_tran_top_version_generators | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
| sys.dm_tran_active_snapshot_database_transactions | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
| sys.dm_tran_persistent_version_store_stats | ساخت گزارش ظرفیت، یافتن Session یا Task پرمصرف و تشخیص فشار Version Store با نمونهبرداری زماندار. | session_id | مطالعه آموزش کامل |
معماری اجرا و اعتبارسنجی
جریان دوم از تعریف مسئله به کنترل مجوز، Snapshot، تفسیر و تأیید با منبع دوم میرسد.
شش مثال ترکیبی
مثال ترکیبی 1: سناریوی ترکیبی 1
این Query یک نمای هماهنگ از خانواده 31 برای تصمیم مرحله 1 میسازد.
SELECT * FROM sys.dm_db_file_space_usage;
| شماره | خروجی | قدم بعد |
|---|
| 1 | خروجی مدیریتی مرحله 1 | مقاله فرزند مرتبط را برای تحلیل عمیق باز کنید. |
مثال 1 نقش هماهنگکننده دارد و جایگزین Syntax و هشدارهای مقاله تخصصی نیست.
مثال ترکیبی 2: سناریوی ترکیبی 2
این Query یک نمای هماهنگ از خانواده 31 برای تصمیم مرحله 2 میسازد.
SELECT TOP (20) * FROM sys.dm_db_session_space_usage;
| شماره | خروجی | قدم بعد |
|---|
| 2 | خروجی مدیریتی مرحله 2 | مقاله فرزند مرتبط را برای تحلیل عمیق باز کنید. |
مثال 2 نقش هماهنگکننده دارد و جایگزین Syntax و هشدارهای مقاله تخصصی نیست.
مثال ترکیبی 3: سناریوی ترکیبی 3
این Query یک نمای هماهنگ از خانواده 31 برای تصمیم مرحله 3 میسازد.
SELECT TOP (20) * FROM sys.dm_db_task_space_usage;
| شماره | خروجی | قدم بعد |
|---|
| 3 | خروجی مدیریتی مرحله 3 | مقاله فرزند مرتبط را برای تحلیل عمیق باز کنید. |
مثال 3 نقش هماهنگکننده دارد و جایگزین Syntax و هشدارهای مقاله تخصصی نیست.
مثال ترکیبی 4: سناریوی ترکیبی 4
این Query یک نمای هماهنگ از خانواده 31 برای تصمیم مرحله 4 میسازد.
SELECT * FROM sys.dm_tran_active_snapshot_database_transactions;
| شماره | خروجی | قدم بعد |
|---|
| 4 | خروجی مدیریتی مرحله 4 | مقاله فرزند مرتبط را برای تحلیل عمیق باز کنید. |
مثال 4 نقش هماهنگکننده دارد و جایگزین Syntax و هشدارهای مقاله تخصصی نیست.
مثال ترکیبی 5: سناریوی ترکیبی 5
این Query یک نمای هماهنگ از خانواده 31 برای تصمیم مرحله 5 میسازد.
SELECT TOP (20) * FROM sys.dm_tran_top_version_generators;
| شماره | خروجی | قدم بعد |
|---|
| 5 | خروجی مدیریتی مرحله 5 | مقاله فرزند مرتبط را برای تحلیل عمیق باز کنید. |
مثال 5 نقش هماهنگکننده دارد و جایگزین Syntax و هشدارهای مقاله تخصصی نیست.
مثال ترکیبی 6: سناریوی ترکیبی 6
این Query یک نمای هماهنگ از خانواده 31 برای تصمیم مرحله 6 میسازد.
SELECT * FROM sys.dm_tran_persistent_version_store_stats;
| شماره | خروجی | قدم بعد |
|---|
| 6 | خروجی مدیریتی مرحله 6 | مقاله فرزند مرتبط را برای تحلیل عمیق باز کنید. |
مثال 6 نقش هماهنگکننده دارد و جایگزین Syntax و هشدارهای مقاله تخصصی نیست.
سناریوهای واقعی
در مرکز عملیات، خانواده TempDB Performance DMVs به Runbook پاسخ سریع، گزارش ظرفیت و تحلیل پس از Incident تبدیل میشود. هر Runbook مالک، زمان، Query کمخطر و شرط Escalation دارد.
در پروژه حرفهای، جدول Snapshot، Retention، داشبورد، آستانه هشدار، مستندات مجوز و آموزش تیم جزو خروجی هستند.
در آموزش، هنرجو باید ابزار نامناسب را رد کند، عضو درست را برگزیند و نتیجه را با منبع دوم تأیید نماید.
هشدار معماری
DMVهای TempDB Snapshot هستند و نمونهبرداری جزئی Version Store میتواند پرهزینه باشد.
اشتباهات رایج
- انتخاب بر اساس عادت بهجای Scope؛ از جدول مقایسه استفاده کنید.
- اجرای چند Query سنگین بدون Baseline؛ نمونهبرداری مرحلهای انجام دهید.
- نادیدهگرفتن Reset داده؛ زمان Capture را ذخیره کنید.
- ترکیب مشاهده و تغییر؛ دو Runbook مستقل بسازید.
- نسبتدادن خروجی به علت؛ با Plan، Wait یا Log اعتبارسنجی کنید.
Performance Considerations
هزینه مجموعه از نرخ نمونهبرداری، حجم Snapshot و پردازش گزارش تشکیل میشود. Queryهای حجیم را از Backup، ETL و CHECKDB جدا زمانبندی کنید.
برای داشبورد، داده را در Staging ذخیره و روی زمان، DatabaseID، SessionID یا FileID ایندکس کنید. Retention بر اساس نیاز Trend تعیین شود.
پاکسازی Cache یا Shrink نباید در حلقه پایش خودکار باشد؛ Automation فقط شناسایی و پیشنهاد بسازد و اجرای پرریسک نیازمند Approval باشد.
Best Practices
- Scope و Permission هر عضو مستند شود.
- Queryها پارامتری و محدود باشند.
- Snapshot با نام سرور و زمان ذخیره شود.
- آستانه از Baseline واقعی استخراج شود.
- ابزار Deprecated نقشه مهاجرت داشته باشد.
- اقدام تغییردهنده Approval و Rollback داشته باشد.
- گزارش مالک اقدام بعدی را مشخص کند.
برد تصمیم سوم گزینه کمهزینه، نیازمند بررسی و پرریسک را از هم جدا میکند.
مزایا و محدودیتها
| جنبه | مزیت | محدودیت |
|---|
| پوشش | چند زاویه از مسئله | نیازمند همبستگی |
| خودکارسازی | قابل Script | اقدام پرریسک خودکار نشود |
| آموزش | مسیر پایه تا حرفهای | حفظ Syntax کافی نیست |
| نگهداری | Runbook و داشبورد | نسخه باید بازبینی شود |
سؤالات متداول
TempDB Performance DMVs چه مسئلهای را حل میکند؟
برای ظرفیت TempDB، Session، Task و Version Store در Scope مشخص استفاده میشود و خروجی آن باید به تصمیم قابل سنجش منجر شود.
TempDB Performance DMVs پیشنیاز یادگیری چیست؟
آشنایی با T-SQL، Session، Transaction و خواندن خروجیهای تشخیصی کافی است.
TempDB Performance DMVs هزینه پنهان سازمانی چیست؟
زمان تحلیل، سربار نمونهبرداری و ریسک اقدام نادرست باید در طراحی Runbook دیده شود.
TempDB Performance DMVs خروجی پروژه حرفهای چیست؟
Query نسخهبندیشده، Snapshot، معیار هشدار، Runbook و آموزش تیم بهرهبردار خروجی مناسب هستند.
TempDB Performance DMVs با روش جایگزین چه تفاوتی دارد؟
Scope، ماندگاری داده، سربار، نسخه و قابلیت Rollback معیار مقایسه هستند.
TempDB Performance DMVs چه زمانی مشاوره تخصصی لازم است؟
در Production، SLA سخت، داده حساس یا عملیات اثرگذار بر Cache و فایل، بازبینی متخصص ضروری است.
TempDB Performance DMVs رایجترین خطا چیست؟
اجرای بدون Baseline و تفسیر یک Snapshot بهعنوان علت قطعی، خطای متداول است.
TempDB Performance DMVs اثر Performance چگونه کنترل میشود؟
با TOP، Filter، نرخ نمونهبرداری، پنجره اجرا و مقایسه قبل و بعد کنترل میشود.
TempDB Performance DMVs Best Practice اصلی چیست؟
ابتدا مشاهده کمهزینه، سپس اعتبارسنجی با منبع دوم و در پایان اقدام محدود انجام شود.
TempDB Performance DMVs سازگاری نسخه چگونه بررسی میشود؟
مستندات همان Edition و نسخه نصبشده، بهویژه نام مجوزها و ستونهای DMV، کنترل شود.
سؤالات مصاحبه
Scope اعضا چگونه مقایسه میشود؟
سطح Session، Database یا Server، زمان Reset و ماندگاری خروجی مقایسه میشود.
ریسک اقدام چگونه کنترل میشود؟
Baseline، Approval، Backup، Scope محدود و Rollback تعریف میشوند.
چرا یک ابزار کافی نیست؟
زیرا هر خروجی فقط یک زاویه است و علت با همبستگی چند شاهد اثبات میشود.
پایش چگونه مقیاسپذیر میشود؟
Snapshot دورهای، Staging، Index و Retention کنترلشده به کار میرود.
Deprecated چگونه مدیریت میشود؟
Inventory، مقصد مهاجرت، آزمایش تطبیقی و تاریخ خاموشی ثبت میشود.
خروجی مدیریتی چیست؟
وضعیت، روند، ریسک، مالک اقدام و موعد بازبینی ارائه میشود.
چکلیست نهایی
- مسئله و Scope مشخص است.
- عضو مناسب انتخاب شده است.
- مجوز و نسخه کنترل شدهاند.
- Baseline موجود است.
- مشاهده از تغییر جداست.
- نتیجه با منبع دوم تأیید میشود.
- مقاله فرزند خوانده شده است.
- مالک اقدام ثبت شده است.
جمعبندی و مسیر مطالعه
برای استفاده مؤثر از TempDB Performance DMVs ابتدا مسئله را به Scope، خروجی و ریسک تبدیل کنید. لینکهای زیر همه 7 مقاله فرزند همین خانواده هستند.
خدمات برنامهنویسی و پایگاه داده
برنامهنویسی در اصفهان؛ قبول سفارشهای برنامهنویسی و پایگاه داده با شماره 09131253620، انجام پروژه، آموزش برنامهنویسی و آموزش SQL Server.
مجموعهای معتبر با سابقه فعالیت حرفهای از سال ۱۳۷۵ شمسی تاکنون در طراحی نرمافزار، پایگاه داده، سامانه تحت وب و راهکارهای سازمانی فعالیت میکند.
برای سفارش پروژههای برنامهنویسی و پایگاه داده با شماره 09131253620 تماس بگیرید.
ایتا، واتساپ و تماس مستقیم: +989131253620 — تماس با ما