آموزش جامع Query Store Catalog Views در SQL Server با مثال

راهنمای جامع نماهای کاتالوگ Query Store در SQL Server

توسط admin | گروه SQL Server | 1405/05/06

نظرات 0

راهنمای جامع نماهای کاتالوگ Query Store در SQL Server

Query Store تاریخچه متن پرس‌وجوها، هویت منطقی Query، طرح‌های اجرایی، آمار اجرا، انتظارها و تنظیمات مرتبط را درون پایگاه داده نگهداری می‌کند. نماهای کاتالوگ رابط T-SQL برای تبدیل این داده‌ها به گزارش عیب‌یابی، تحلیل تغییر طرح و پایش روند هستند.

این راهنما ساختار ۱۲ موضوع را به‌صورت یک نقشه منسجم معرفی می‌کند. برای هر نما توضیح کوتاه، لینک مقاله مستقل، جدول مقایسه، مثال قابل اجرا، خروجی نمونه، نکات نسخه و مسیر پیشنهادی تحلیل ارائه شده است.

فهرست دسترسی سریع

Query Store چه مشکلی را حل می‌کند؟

در حافظه Plan Cache فقط وضعیت جاری یا نسبتاً کوتاه‌مدت دیده می‌شود و با Restart، فشار حافظه یا Recompile بخشی از شواهد از بین می‌رود. Query Store تاریخچه Query، Plan و Runtime را نگه می‌دارد تا بتوان تغییر عملکرد را در طول زمان بررسی کرد.

برای رسیدن از یک شکایت ساده مانند «گزارش فروش کند شده» به علت فنی، چند لایه باید کنار هم قرار گیرند: متن SQL، شناسه Query، طرح‌های ممکن، آمار اجرای هر طرح در بازه‌های مختلف، انتظارها، تنظیمات زمینه و هرگونه Hint یا Feedback. هیچ نمای واحدی به‌تنهایی پاسخ همه پرسش‌ها را نمی‌دهد.

نکته مهم: در فهرست ورودی نام sys.query_store_options آمده است، اما نمای معتبر SQL Server برای تنظیمات پایگاه داده sys.database_query_store_options است. مقاله مستقل این مورد، تفاوت نام و روش صحیح را شفاف توضیح می‌دهد.

نقشه ارتباط نماهای اصلی

زنجیره معمول از sys.query_store_query_text آغاز می‌شود. sys.query_store_query هویت منطقی و context را می‌دهد، sys.query_store_plan طرح‌ها را نگهداری می‌کند و sys.query_store_runtime_stats به همراه runtime_stats_interval رفتار زمانی را نشان می‌دهد. wait_stats علت انتظار را تکمیل می‌کند و نماهای hints، feedback و replicas قابلیت‌های مدیریتی نسخه‌های جدید را پوشش می‌دهند.

نقشه مفهومی Query Store Catalog Viewsاجزای اصلی، کلیدها و ارتباط‌های کاتالوگی برای Query Store Catalog Views Query Store Catalog Views query_text_idکلید و هویت query_idداده تحلیلی plan_idاتصال مرتبط runtime_stats_interval_idفیلتر و محدودسازی wait_categoryخطای قابل کنترل replica_group_idخروجی عملیاتی ارتباط کلیدها، داده‌ها و تصمیم مدیریتی در Query Store Catalog Views

این تصویر کلیدهای محوری و مسیر حرکت از متن Query تا تصمیم مدیریتی را نمایش می‌دهد.

جدول مقایسه‌ای نماها

نما یا موضوعکاربرد اصلینسخه یا نکته مهملینک آموزش کامل
sys.query_store_query_textمتن T-SQL، شناسه متن، هندل عبارت و وضعیت متن محدود یا رمزگذاری‌شده را نگهداری می‌کند.SQL Server 2016 و نسخه‌های بعدیآموزش کامل
sys.query_store_queryبرای هر پرس‌وجوی منطقی، ارتباط با متن، تنظیمات زمینه، شیء مبدأ، هش پرس‌وجو و آمار کامپایل را ارائه می‌کند.SQL Server 2016 و نسخه‌های بعدیآموزش کامل
sys.query_store_planطرح XML، هش طرح، نسخه موتور، سطح سازگاری، وضعیت اجبار طرح و دلایل شکست Plan Forcing را نمایش می‌دهد.SQL Server 2016 و نسخه‌های بعدی؛ برخی ستون‌ها در نسخه‌های جدید افزوده شده‌اندآموزش کامل
sys.query_store_runtime_statsتعداد اجرا، زمان، CPU، خواندن‌های منطقی و فیزیکی، حافظه، تعداد ردیف و شاخص‌های حداقل، حداکثر و میانگین را در هر بازه نگهداری می‌کند.SQL Server 2016 و نسخه‌های بعدیآموزش کامل
sys.query_store_runtime_stats_intervalمرز شروع و پایان هر پنجره زمانی را برای اتصال درست آمار اجرا و انتظار فراهم می‌کند.SQL Server 2016 و نسخه‌های بعدیآموزش کامل
sys.query_store_wait_statsانتظارها را بر اساس plan، بازه زمانی و دسته انتظار جمع‌آوری می‌کند تا علت کندی فراتر از duration دیده شود.SQL Server 2017 و نسخه‌های بعدیآموزش کامل
sys.query_store_optionsنام رایج ولی نادرست sys.query_store_options را اصلاح می‌کند و روش استفاده از نمای واقعی sys.database_query_store_options را آموزش می‌دهد.نمای صحیح sys.database_query_store_options از SQL Server 2016 در دسترس استآموزش کامل
sys.query_context_settingsترکیب تنظیماتی مانند زبان، date format و گزینه‌های SET را که هویت و معنای پرس‌وجو را تغییر می‌دهند ثبت می‌کند.SQL Server 2016 و نسخه‌های بعدیآموزش کامل
sys.query_store_query_hintsHintهای ثبت‌شده بدون تغییر کد برنامه، شناسه Hint، query_id، متن OPTION و محدوده Replica را نشان می‌دهد.SQL Server 2022 و نسخه‌های بعدیآموزش کامل
sys.query_store_plan_feedbackاطلاعات بازخوردهای Memory Grant، CE، DOP و قابلیت‌های جدیدتر بهینه‌سازی را برای planها نگهداری می‌کند.SQL Server 2022 و نسخه‌های بعدیآموزش کامل
sys.query_store_replicasگروه‌های Replica، نقش‌ها و نام Replicaهایی را نمایش می‌دهد که داده Query Store برای بارهای خواندنی ثانویه به آن‌ها نسبت داده می‌شود.SQL Server 2025 و نسخه‌های بعدی و Azure SQL Databaseآموزش کامل
sys.query_store_plan_forcing_locationsثبت می‌کند کدام query و plan در کدام replica_group به اجبار انتخاب شده‌اند.SQL Server 2025 و نسخه‌های بعدی و Azure SQL Databaseآموزش کامل

معرفی هر نما و مسیر مطالعه

1. sys.query_store_query_text

متن T-SQL، شناسه متن، هندل عبارت و وضعیت متن محدود یا رمزگذاری‌شده را نگهداری می‌کند. کاربرد شاخص آن، ردیابی متن دقیق یک گزارش کند و یافتن عبارت‌هایی که الگوی خاصی از نام جدول یا پارامتر را دارند. است. رابطه مهم: از طریق query_text_id به sys.query_store_query متصل می‌شود.

نکته نسخه و احتیاط: SQL Server 2016 و نسخه‌های بعدی؛ جست‌وجوی LIKE با الگوی آغازشونده با درصد روی متن‌های فراوان می‌تواند پرهزینه باشد و متن ماژول رمزگذاری‌شده قابل بازیابی نیست.

مطالعه مقاله مستقل sys.query_store_query_text با ده مثال عملی

2. sys.query_store_query

برای هر پرس‌وجوی منطقی، ارتباط با متن، تنظیمات زمینه، شیء مبدأ، هش پرس‌وجو و آمار کامپایل را ارائه می‌کند. کاربرد شاخص آن، تشخیص پرس‌وجوهایی که بارها کامپایل شده‌اند یا یک متن یکسان را تحت تنظیمات زمینه متفاوت اجرا کرده‌اند. است. رابطه مهم: به query_text، plan و query_context_settings پیوند می‌خورد.

نکته نسخه و احتیاط: SQL Server 2016 و نسخه‌های بعدی؛ یک متن SQL ممکن است چند query_id داشته باشد؛ زیرا context settings، batch یا شیء میزبان می‌تواند متفاوت باشد.

مطالعه مقاله مستقل sys.query_store_query با ده مثال عملی

3. sys.query_store_plan

طرح XML، هش طرح، نسخه موتور، سطح سازگاری، وضعیت اجبار طرح و دلایل شکست Plan Forcing را نمایش می‌دهد. کاربرد شاخص آن، مقایسه طرح سریع و طرح کند یک پرس‌وجو و بررسی اینکه آیا طرح اجباری هنوز معتبر است. است. رابطه مهم: با query_id به sys.query_store_query و با plan_id به runtime_stats متصل می‌شود.

نکته نسخه و احتیاط: SQL Server 2016 و نسخه‌های بعدی؛ برخی ستون‌ها در نسخه‌های جدید افزوده شده‌اند؛ خواندن ستون XML طرح برای همه ردیف‌ها حافظه و CPU زیادی مصرف می‌کند؛ ابتدا متادیتا را فیلتر کنید.

مطالعه مقاله مستقل sys.query_store_plan با ده مثال عملی

4. sys.query_store_runtime_stats

تعداد اجرا، زمان، CPU، خواندن‌های منطقی و فیزیکی، حافظه، تعداد ردیف و شاخص‌های حداقل، حداکثر و میانگین را در هر بازه نگهداری می‌کند. کاربرد شاخص آن، رتبه‌بندی پرس‌وجوها بر اساس مصرف CPU، مدت اجرا یا IO در ساعت‌های پرترافیک. است. رابطه مهم: از plan_id به plan و از runtime_stats_interval_id به بازه‌های زمانی متصل می‌شود.

نکته نسخه و احتیاط: SQL Server 2016 و نسخه‌های بعدی؛ واحد duration و CPU میکروثانیه است و جمع‌کردن میانگین‌ها بدون وزن‌دهی با count_executions نتیجه اشتباه می‌دهد.

مطالعه مقاله مستقل sys.query_store_runtime_stats با ده مثال عملی

جریان داده Query Store Catalog Viewsمسیر حرکت از ورودی Query Store تا خروجی تحلیلی برای Query Store Catalog Views جریان تحلیل Query Store Catalog Views ورودیquery_sql_text فیلترquery_id اتصالquery_plan محاسبهcount_executions خروجیگزارش کنترل میانیavg_duration اعتبارسنجیwait_category_desc از داده خام Query Store تا تصمیم قابل اجرا

تصویر دوم، جریان داده از متن Query تا تحلیل زمان اجرا و انتظارها را نشان می‌دهد.

5. sys.query_store_runtime_stats_interval

مرز شروع و پایان هر پنجره زمانی را برای اتصال درست آمار اجرا و انتظار فراهم می‌کند. کاربرد شاخص آن، ساخت نمودار ساعتی عملکرد و تبدیل آمار خام Query Store به سری زمانی قابل فهم. است. رابطه مهم: کلید runtime_stats_interval_id در runtime_stats و wait_stats استفاده می‌شود.

نکته نسخه و احتیاط: SQL Server 2016 و نسخه‌های بعدی؛ بازه فعال ممکن است هنوز در حال تغییر باشد و مقایسه آن با بازه‌های کامل باید با دقت انجام شود.

مطالعه مقاله مستقل sys.query_store_runtime_stats_interval با ده مثال عملی

6. sys.query_store_wait_stats

انتظارها را بر اساس plan، بازه زمانی و دسته انتظار جمع‌آوری می‌کند تا علت کندی فراتر از duration دیده شود. کاربرد شاخص آن، تفکیک کندی ناشی از CPU، قفل، IO، حافظه یا موازی‌سازی برای یک plan مشخص. است. رابطه مهم: با plan_id به plan و با runtime_stats_interval_id به interval متصل می‌شود.

نکته نسخه و احتیاط: SQL Server 2017 و نسخه‌های بعدی؛ این نما انتظارهای زمان اجرا را ثبت می‌کند و جایگزین کامل wait statistics سطح نمونه نیست.

مطالعه مقاله مستقل sys.query_store_wait_stats با ده مثال عملی

7. sys.query_store_options

نام رایج ولی نادرست sys.query_store_options را اصلاح می‌کند و روش استفاده از نمای واقعی sys.database_query_store_options را آموزش می‌دهد. کاربرد شاخص آن، تشخیص READ_ONLY شدن Query Store، پرشدن فضا و بررسی سیاست Capture و پاک‌سازی. است. رابطه مهم: یک ردیف وضعیت در سطح پایگاه داده برمی‌گرداند و به‌طور معمول نیاز به Join ندارد.

نکته نسخه و احتیاط: نمای صحیح sys.database_query_store_options از SQL Server 2016 در دسترس است؛ در SQL Server نمایی با نام sys.query_store_options وجود ندارد؛ استفاده مستقیم از آن خطای Invalid object name ایجاد می‌کند.

مطالعه مقاله مستقل sys.query_store_options با ده مثال عملی

8. sys.query_context_settings

ترکیب تنظیماتی مانند زبان، date format و گزینه‌های SET را که هویت و معنای پرس‌وجو را تغییر می‌دهند ثبت می‌کند. کاربرد شاخص آن، توضیح اینکه چرا یک متن مشابه برای دو Session به query_id یا plan متفاوت منتهی شده است. است. رابطه مهم: از طریق context_settings_id به sys.query_store_query متصل می‌شود.

نکته نسخه و احتیاط: SQL Server 2016 و نسخه‌های بعدی؛ رمزگشایی set_options به‌صورت عدد خام دشوار است و نباید بدون توجه به سایر ستون‌ها تفسیر شود.

مطالعه مقاله مستقل sys.query_context_settings با ده مثال عملی

9. sys.query_store_query_hints

Hintهای ثبت‌شده بدون تغییر کد برنامه، شناسه Hint، query_id، متن OPTION و محدوده Replica را نشان می‌دهد. کاربرد شاخص آن، ممیزی MAXDOP، RECOMPILE یا Hintهای اصلاحی که از بیرون کد برنامه اعمال شده‌اند. است. رابطه مهم: با query_id به sys.query_store_query و در نسخه‌های جدید با replica_group_id به replicas مرتبط است.

نکته نسخه و احتیاط: SQL Server 2022 و نسخه‌های بعدی؛ Hint نامناسب می‌تواند مشکل را پنهان یا طرحی نامطلوب را تثبیت کند؛ ثبت تغییر و برنامه بازگشت ضروری است.

مطالعه مقاله مستقل sys.query_store_query_hints با ده مثال عملی

سناریوی کارایی Query Store Catalog Viewsمقایسه روش صحیح، خطاهای رایج و تصمیم کارایی برای Query Store Catalog Views تصمیم کارایی برای Query Store Catalog Views روش پرریسکخواندن گسترده فیلتر زمانی روش پیشنهادیفیلتر هدفمند Join کلیدی پیامدطرح اجباری خطاQuery Hint معیارPlan Feedback نتیجهReplica Scope فیلتر، Join صحیح و تفسیر مبتنی بر بازه زمانی

تصویر سوم، روش کنترل‌شده برای استفاده از نماها و خطر خواندن یا تفسیر گسترده را مقایسه می‌کند.

10. sys.query_store_plan_feedback

اطلاعات بازخوردهای Memory Grant، CE، DOP و قابلیت‌های جدیدتر بهینه‌سازی را برای planها نگهداری می‌کند. کاربرد شاخص آن، بررسی اینکه موتور چرا و چگونه برای یک طرح بازخورد کارایی ثبت کرده و وضعیت آن اکنون چیست. است. رابطه مهم: با plan_id به sys.query_store_plan و از آنجا به query متصل می‌شود.

نکته نسخه و احتیاط: SQL Server 2022 و نسخه‌های بعدی؛ وجود Feedback به‌تنهایی به معنی موفقیت قطعی نیست؛ state، زمان آخرین تغییر و آمار اجرا باید کنار هم دیده شوند.

مطالعه مقاله مستقل sys.query_store_plan_feedback با ده مثال عملی

11. sys.query_store_replicas

گروه‌های Replica، نقش‌ها و نام Replicaهایی را نمایش می‌دهد که داده Query Store برای بارهای خواندنی ثانویه به آن‌ها نسبت داده می‌شود. کاربرد شاخص آن، تفکیک عملکرد بار خواندنی Primary و Secondary و تعیین محدوده Hint یا Plan Forcing. است. رابطه مهم: replica_group_id در query_store_query_hints و plan_forcing_locations برای تعیین محدوده Replica استفاده می‌شود.

نکته نسخه و احتیاط: SQL Server 2025 و نسخه‌های بعدی و Azure SQL Database؛ این قابلیت به نسخه و پیکربندی وابسته است؛ در محیط فاقد Query Store روی Secondary ممکن است نما وجود نداشته یا داده‌ای نداشته باشد.

مطالعه مقاله مستقل sys.query_store_replicas با ده مثال عملی

12. sys.query_store_plan_forcing_locations

ثبت می‌کند کدام query و plan در کدام replica_group به اجبار انتخاب شده‌اند. کاربرد شاخص آن، ممیزی طرح‌های اجباری روی Secondaryهای خواندنی و جلوگیری از اشتباه گرفتن اجبار Primary با Replica دیگر. است. رابطه مهم: به query_store_query، query_store_plan و query_store_replicas پیوند می‌خورد.

نکته نسخه و احتیاط: SQL Server 2025 و نسخه‌های بعدی و Azure SQL Database؛ Join اشتباه plan_id یا replica_group_id می‌تواند محل اجبار را نادرست گزارش کند و قابلیت فقط در نسخه‌های پشتیبان در دسترس است.

مطالعه مقاله مستقل sys.query_store_plan_forcing_locations با ده مثال عملی

شش مثال ترکیبی و کاربردی

مثال ترکیبی 1: یافتن Queryهای پرمصرف بر اساس CPU

این گزارش متن Query، طرح و آمار اجرا را متصل می‌کند و مجموع تقریبی CPU را بر اساس تعداد اجرا رتبه‌بندی می‌کند.

SELECT TOP (20)
    q.query_id,
    qt.query_sql_text,
    SUM(rs.avg_cpu_time * rs.count_executions) AS total_cpu_us
FROM sys.query_store_query_text AS qt
INNER JOIN sys.query_store_query AS q
    ON q.query_text_id = qt.query_text_id
INNER JOIN sys.query_store_plan AS p
    ON p.query_id = q.query_id
INNER JOIN sys.query_store_runtime_stats AS rs
    ON rs.plan_id = p.plan_id
GROUP BY q.query_id, qt.query_sql_text
ORDER BY total_cpu_us DESC;
خروجی نمونهمعنا
رتبه ۱Query با بیشترین CPU تجمعی
واحدمیکروثانیه تقریبی

نتیجه باید با بازه زمانی، نسخه موتور، بار کاری و تغییرات استقرار تطبیق داده شود؛ رتبه بالا به‌تنهایی مجوز تغییر Plan یا تنظیمات نیست.

مثال ترکیبی 2: مقایسه چند طرح برای یک Query

این Query پرس‌وجوهایی را پیدا می‌کند که بیش از یک طرح داشته‌اند و برای بررسی Regression مناسب‌اند.

SELECT
    query_id,
    COUNT(*) AS plan_count,
    SUM(CASE WHEN is_forced_plan = 1 THEN 1 ELSE 0 END) AS forced_count
FROM sys.query_store_plan
GROUP BY query_id
HAVING COUNT(*) > 1
ORDER BY plan_count DESC;
خروجی نمونهمعنا
plan_countتعداد طرح‌های ثبت‌شده
forced_countتعداد طرح‌های اجباری

نتیجه باید با بازه زمانی، نسخه موتور، بار کاری و تغییرات استقرار تطبیق داده شود؛ رتبه بالا به‌تنهایی مجوز تغییر Plan یا تنظیمات نیست.

مثال ترکیبی 3: ساخت روند زمانی مدت اجرا

آمار Runtime با بازه‌ها Join می‌شود تا روند میانگین وزنی duration در هر پنجره زمانی محاسبه شود.

SELECT
    i.start_time,
    i.end_time,
    CAST(SUM(rs.avg_duration * rs.count_executions) /
         NULLIF(SUM(rs.count_executions), 0) AS bigint) AS weighted_avg_duration_us
FROM sys.query_store_runtime_stats AS rs
INNER JOIN sys.query_store_runtime_stats_interval AS i
    ON i.runtime_stats_interval_id = rs.runtime_stats_interval_id
GROUP BY i.start_time, i.end_time
ORDER BY i.start_time DESC;
خروجی نمونهمعنا
هر ردیفیک بازه Query Store
شاخصمیانگین وزنی duration

نتیجه باید با بازه زمانی، نسخه موتور، بار کاری و تغییرات استقرار تطبیق داده شود؛ رتبه بالا به‌تنهایی مجوز تغییر Plan یا تنظیمات نیست.

مثال ترکیبی 4: رتبه‌بندی دسته‌های انتظار

برای شناخت علت کندی، مجموع انتظارهای ثبت‌شده بر اساس دسته محاسبه می‌شود.

SELECT TOP (15)
    wait_category_desc,
    SUM(total_query_wait_time_ms) AS total_wait_ms
FROM sys.query_store_wait_stats
GROUP BY wait_category_desc
ORDER BY total_wait_ms DESC;
خروجی نمونهمعنا
رتبه ۱دسته انتظار غالب
total_wait_msزمان انتظار تجمعی

نتیجه باید با بازه زمانی، نسخه موتور، بار کاری و تغییرات استقرار تطبیق داده شود؛ رتبه بالا به‌تنهایی مجوز تغییر Plan یا تنظیمات نیست.

مثال ترکیبی 5: کنترل وضعیت و فضای Query Store

وضعیت عملیاتی و درصد تقریبی مصرف فضای Query Store در پایگاه داده جاری نمایش داده می‌شود.

SELECT
    actual_state_desc,
    readonly_reason,
    current_storage_size_mb,
    max_storage_size_mb,
    CAST(100.0 * current_storage_size_mb /
         NULLIF(max_storage_size_mb, 0) AS decimal(6,2)) AS used_percent
FROM sys.database_query_store_options;
خروجی نمونهمعنا
actual_state_descREAD_WRITE یا READ_ONLY
used_percentدرصد تقریبی مصرف

نتیجه باید با بازه زمانی، نسخه موتور، بار کاری و تغییرات استقرار تطبیق داده شود؛ رتبه بالا به‌تنهایی مجوز تغییر Plan یا تنظیمات نیست.

مثال ترکیبی 6: ممیزی Hint و Feedback

Hintهای اعمال‌شده و Feedbackهای طرح به‌صورت دو مجموعه جداگانه برای بازبینی تغییرات نمایش داده می‌شوند.

SELECT
    query_id,
    query_hint_text,
    source_desc
FROM sys.query_store_query_hints
ORDER BY query_id;

SELECT
    plan_id,
    feature_desc,
    state_desc,
    last_updated_time
FROM sys.query_store_plan_feedback
ORDER BY last_updated_time DESC;
خروجی نمونهمعنا
مجموعه اولQuery Store Hints
مجموعه دومPlan Feedback

نتیجه باید با بازه زمانی، نسخه موتور، بار کاری و تغییرات استقرار تطبیق داده شود؛ رتبه بالا به‌تنهایی مجوز تغییر Plan یا تنظیمات نیست.

مراحل استاندارد عیب‌یابی با Query Store

  1. وضعیت Query Store، READ_WRITE بودن و فضای باقی‌مانده را کنترل کنید.
  2. بازه زمانی رخداد را مشخص و intervalهای مرتبط را انتخاب کنید.
  3. Queryهای اثرگذار را بر اساس CPU، duration، IO یا تعداد اجرا رتبه‌بندی کنید.
  4. متن Query، query_id و plan_idها را به هم متصل و تغییر طرح را بررسی کنید.
  5. Waitها، context settings، Hintها و Feedbackها را برای علت مکمل تحلیل کنید.
  6. اقدام کم‌ریسک تعریف کنید، خط مبنا بگیرید و اثر تغییر را در بازه بعدی بسنجید.

اشتباهات رایج

  • تمرکز روی avg_duration بدون درنظرگرفتن count_executions و محاسبه میانگین وزنی.
  • خواندن ستون query_plan برای همه طرح‌ها پیش از محدودکردن query_id یا plan_id.
  • تفسیر انتظارهای Query Store به‌عنوان همه Waitهای سطح Instance.
  • اعمال Plan Forcing یا Query Hint بدون ثبت دلیل، مالک تغییر و برنامه بازگشت.
  • فرض وجود نماهای SQL Server 2022 یا 2025 روی همه سرورها بدون کنترل نسخه.
  • استفاده از نام نامعتبر sys.query_store_options به‌جای sys.database_query_store_options.

بهترین روش‌ها برای گزارش و داشبورد

داشبورد خوب باید از داده خام فاصله بگیرد و شاخص‌های قابل اقدام نشان دهد: Queryهای تازه کندشده، تغییر طرح، رشد CPU، سهم Waitها، وضعیت فضای Query Store و تغییرات Hint یا Feedback. هر شاخص باید بازه زمانی، واحد و تعداد نمونه را همراه داشته باشد.

برای تاریخچه بلندمدت، Snapshot کوچک و هدفمند بسازید. ذخیره تمام XML طرح‌ها یا متن‌های بزرگ در هر نمونه‌برداری هم فضا را افزایش می‌دهد و هم مقایسه را دشوار می‌کند. شناسه‌ها، هش‌ها، مقادیر تجمعی و فقط طرح‌های تغییرکرده انتخاب بهتری هستند.

سؤالات متداول

آیا Query Store جایگزین Plan Cache است؟

خیر. Query Store تاریخچه پایدارتر و تجمیع‌شده ارائه می‌کند، اما Plan Cache و DMVهای لحظه‌ای هنوز برای جزئیات وضعیت جاری ارزشمندند.

مهم‌ترین کلیدها در زنجیره نماها کدام‌اند؟

query_text_id، query_id، plan_id و runtime_stats_interval_id چهار کلید اصلی برای حرکت بین متن، Query، Plan و آمار زمانی هستند.

چرا میانگین‌های runtime_stats را نباید ساده جمع کرد؟

هر ردیف تعداد اجرای متفاوتی دارد. برای میانگین کل باید مقدار میانگین در count_executions ضرب و سپس بر مجموع تعداد اجرا تقسیم شود.

چرا Query Store ممکن است READ_ONLY شود؟

پرشدن فضای تخصیص‌یافته، محدودیت‌های داخلی یا وضعیت پایگاه داده می‌تواند باعث READ_ONLY شدن شود؛ readonly_reason برای تشخیص کمک می‌کند.

آیا sys.query_store_options وجود دارد؟

نام صحیح برای مشاهده تنظیمات Query Store در پایگاه داده sys.database_query_store_options است.

Query Store Hints از چه نسخه‌ای مهم شده‌اند؟

قابلیت Query Store Hints و نمای مرتبط در SQL Server 2022 و نسخه‌های بعدی ارائه می‌شود.

Plan Feedback چه چیزی را ثبت می‌کند؟

بازخوردهای مرتبط با قابلیت‌هایی مانند Memory Grant، CE و DOP را برای طرح‌های واجد شرایط ثبت می‌کند.

نماهای Replica در چه سناریویی کاربرد دارند؟

در محیط‌های پشتیبان که Query Store برای Replicaهای خواندنی فعال است، برای تفکیک Scope و تحلیل بار Secondary استفاده می‌شوند.

برای ساخت گزارش سازمانی از کجا شروع کنیم؟

ابتدا سؤال تجاری و بازه رخداد را مشخص کنید، سپس یک Query کوچک برای یافتن شناسه‌های اثرگذار بسازید و لایه‌های متن، Plan، Runtime و Wait را تدریجی اضافه کنید.

چه زمانی مشاوره تخصصی SQL Server مفید است؟

وقتی Regression تکرار می‌شود، چند Replica یا نسخه متفاوت وجود دارد، یا تغییر Plan و Hint ریسک عملیاتی دارد، طراحی و بازبینی تخصصی می‌تواند خطا و زمان توقف را کاهش دهد.

سؤالات مصاحبه

  1. زنجیره ارتباط query_text، query، plan و runtime_stats را توضیح دهید.
  2. چگونه یک Plan Regression را با Query Store تشخیص می‌دهید؟
  3. فرق avg_duration ساده و میانگین وزنی چیست؟
  4. readonly_reason در مدیریت Query Store چه کاربردی دارد؟
  5. Query Store Hints و Plan Forcing چه تفاوت عملی دارند؟
  6. چگونه سازگاری اسکریپت Query Store را میان SQL Server 2016، 2022 و 2025 کنترل می‌کنید؟

جمع‌بندی

نماهای کاتالوگ Query Store یک مدل مرتبط می‌سازند: متن، هویت Query، طرح، آمار زمان اجرا، انتظار، تنظیمات و قابلیت‌های مدیریتی. تحلیل قابل اتکا زمانی شکل می‌گیرد که کلیدها درست Join شوند، واحدها و بازه‌ها رعایت شوند و نتیجه با شرایط واقعی بار کاری سنجیده شود.

برای ادامه، مقاله مستقل هر نما را از فهرست زیر انتخاب کنید.

خدمات برنامه‌نویسی و پایگاه داده

برنامه‌نویسی در اصفهان؛ قبول سفارش‌های برنامه‌نویسی و پایگاه داده با شماره 09131253620.

انجام پروژه و آموزش تخصصی

انجام پروژه‌های برنامه‌نویسی، آموزش برنامه‌نویسی و آموزش پایگاه داده SQL Server برای اشخاص، شرکت‌ها و مجموعه‌های آموزشی انجام می‌شود.

مجموعه‌ای معتبر با سابقه فعالیت حرفه‌ای از سال ۱۳۷۵ شمسی

از سال ۱۳۷۵ شمسی تاکنون در زمینه طراحی و اجرای پروژه‌های برنامه‌نویسی، پایگاه داده، سیستم‌های تحت وب، وب‌سایت و راهکارهای نرم‌افزاری فعالیت می‌کنیم.

برای سفارش پروژه‌های برنامه‌نویسی و پایگاه داده، سیستم‌های تحت وب، وب‌سایت و راهکارهای نرم‌افزاری جدید، با شماره تلفن همراه 09131253620 تماس حاصل فرمایید.

ایتا، واتساپ و تماس مستقیم: +989131253620

تماس با ما

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر