آموزش جامع SQLDiag برای جمعآوری دادههای تشخیصی با مثالهای عملی SQL Server
SQLDiag یکی از ابزارها یا قابلیتهای مهم اکوسیستم Microsoft SQL Server برای گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ است. این مقاله از تعریف پایه آغاز میکند و سپس به ساخت خط مبنا، خواندن خروجی، کنترل سربار و تبدیل مشاهده فنی به اقدام قابل سنجش میرسد. تمام مثالها برای همین موضوع طراحی شدهاند تا متن با مقالههای دیگر مجموعه همپوشانی محتوایی نداشته باشد.
منبع اصلی داده در این موضوع «ابزار sqldiag.exe و فایل پیکربندی XML» است و خروجیهای شاخص آن شامل ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV میشود. بنابراین پیش از فعالسازی ابزار باید پرسش عملکردی مشخص باشد؛ برای نمونه، آیا تیم در پی جمعآوری هنگام کندی متناوب است یا میخواهد ثبت داده پیش از بازراهاندازی را ارزیابی کند؟
مسیر دسترسی سریع مقاله SQLDiag: بازگشت به راهنمای ابزارهای گرافیکی و خارجی پایش عملکرد SQL Server.
تعریف و جایگاه SQLDiag
جایگاه SQLDiag در چرخه عیبیابی بین مشاهده، تفسیر و اقدام قرار میگیرد. مشاهده خام تنها میگوید چه چیزی رخ داده است؛ تفسیر باید آن رخداد را با ظرفیت سرور، الگوی مصرف و تغییرات نرمافزار مرتبط کند؛ اقدام نیز باید فرضیهای قابل بازگشت داشته باشد. این ابزار برای گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ مناسب است، اما بهتنهایی علت ریشهای را تضمین نمیکند.
در یک فرایند حرفهای، ابتدا بازه زمانی و معیار موفقیت ثبت میشود. سپس داده از ابزار sqldiag.exe و فایل پیکربندی XML جمعآوری میگردد و شاخصهایی مانند ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV کنار هم قرار میگیرند. اگر نتیجه با تجربه کاربران سازگار نبود، باید از ابزار مکمل در لایه سیستمعامل، موتور داده یا برنامه کاربردی کمک گرفت.
تصویر نخست، معماری اختصاصی SQLDiag را از منبع داده تا خروجیهای قابل استفاده برای جمعآوری هنگام کندی متناوب نشان میدهد.
نحو و الگوی خواندن داده در SQLDiag
همه قابلیتهای SQLDiag یک دستور واحد ندارند، اما Query زیر نقطه شروع عملی برای مشاهده بخشی از داده مرتبط است. آن را ابتدا در محیط آزمایش اجرا کنید و نام پایگاه، مجوزها و نسخه موتور را با شرایط واقعی تطبیق دهید.
-- نمونه 1 اختصاصی SQLDiag
SELECT @@VERSION AS sql_version,SERVERPROPERTY('ServerName') AS server_name,GETDATE() AS captured_at;
| مولفه | توضیح اختصاصی |
|---|
| منبع | ابزار sqldiag.exe و فایل پیکربندی XML |
| هدف | گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ |
| خروجی | ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV |
| هشدار | بسته جمعآوری ممکن است اطلاعات حساس داشته باشد و باید قبل از اشتراکگذاری بازبینی شود |
ده مثال عملی و غیرتکراری برای SQLDiag
مثال 1: ساخت خط مبنای اولیه با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 1 روی موضوع «جمعآوری هنگام کندی متناوب» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 1 اختصاصی SQLDiag
SELECT @@VERSION AS sql_version,SERVERPROPERTY('ServerName') AS server_name,GETDATE() AS captured_at;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 4 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 1 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره تهیه بسته برای پشتیبانی تصمیم بگیرید.
مثال 2: تحلیل داده نمونه در محیط آزمایش با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 2 روی موضوع «ثبت داده پیش از بازراهاندازی» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 2 اختصاصی SQLDiag
SELECT name,value_in_use,description FROM sys.configurations ORDER BY name;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 7 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 2 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره تحلیل Memory Pressure تصمیم بگیرید.
مثال 3: استفاده در گزارش روزانه با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 3 روی موضوع «تهیه بسته برای پشتیبانی» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 3 اختصاصی SQLDiag
SELECT name,state_desc,recovery_model_desc,compatibility_level FROM sys.databases ORDER BY name;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 10 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | قابل قبول در نمونه آزمایشی |
نکته فنی نمونه 3 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره ثبت Deadlock و Blocking تصمیم بگیرید.
مثال 4: اعمال فیلتر هدفمند با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 4 روی موضوع «تحلیل Memory Pressure» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 4 اختصاصی SQLDiag
SELECT TOP (30) wait_type,wait_time_ms,signal_wait_time_ms FROM sys.dm_os_wait_stats ORDER BY wait_time_ms DESC;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 13 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 4 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره جمعآوری هنگام کندی متناوب تصمیم بگیرید.
مثال 5: ترکیب با نمای سیستمی مکمل با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 5 روی موضوع «ثبت Deadlock و Blocking» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 5 اختصاصی SQLDiag
SELECT r.session_id,r.status,r.command,r.wait_type,r.blocking_session_id FROM sys.dm_exec_requests AS r WHERE r.session_id<>@@SPID;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 16 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 5 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره ثبت داده پیش از بازراهاندازی تصمیم بگیرید.
تصویر دوم، جریان اجرای SQLDiag را از دریافت ورودی تا تولید مشاهده قابل مقایسه برای تهیه بسته برای پشتیبانی ترسیم میکند.
مثال 6: بررسی نبود داده یا مقدار NULL با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 6 روی موضوع «جمعآوری هنگام کندی متناوب» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 6 اختصاصی SQLDiag
SELECT physical_memory_kb,available_physical_memory_kb,system_memory_state_desc FROM sys.dm_os_sys_memory;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 2 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | قابل قبول در نمونه آزمایشی |
نکته فنی نمونه 6 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره تهیه بسته برای پشتیبانی تصمیم بگیرید.
مثال 7: آزمون وضعیت مرزی و بار غیرمعمول با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 7 روی موضوع «ثبت داده پیش از بازراهاندازی» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 7 اختصاصی SQLDiag
SELECT DB_NAME(v.database_id) AS database_name,m.physical_name,v.num_of_reads,v.io_stall_read_ms FROM sys.dm_io_virtual_file_stats(NULL,NULL) AS v JOIN sys.master_files AS m ON m.database_id=v.database_id AND m.file_id=v.file_id;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 5 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 7 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره تحلیل Memory Pressure تصمیم بگیرید.
مثال 8: سناریوی عملیاتی سازمانی با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 8 روی موضوع «تهیه بسته برای پشتیبانی» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 8 اختصاصی SQLDiag
SELECT TOP (20) qs.total_worker_time,qs.execution_count,st.text FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st ORDER BY qs.total_worker_time DESC;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 8 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 8 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره ثبت Deadlock و Blocking تصمیم بگیرید.
مثال 9: نمایش روش اشتباه و نسخه اصلاحشده با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 9 روی موضوع «تحلیل Memory Pressure» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود. روش اشتباه، اجرای پایش بدون فیلتر و بدون تعیین مدت است؛ نسخه اصلاحشده Query را محدود میکند تا داده مرتبط با SQLDiag استخراج شود.
-- نمونه 9 اختصاصی SQLDiag
SELECT TOP (100) error,COUNT(*) AS occurrence_count FROM sys.messages WHERE language_id=1033 GROUP BY error ORDER BY error DESC;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 11 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | قابل قبول در نمونه آزمایشی |
نکته فنی نمونه 9 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره جمعآوری هنگام کندی متناوب تصمیم بگیرید.
مثال 10: کنترل کارایی و هزینه پایش با SQLDiag
در این سناریوی اختصاصی، هدف آن است که گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ به شکلی قابل اندازهگیری بررسی شود. نمونه شماره 10 روی موضوع «ثبت Deadlock و Blocking» تمرکز دارد و خروجی آن برای تصمیمگیری عملیاتی استفاده میشود.
-- نمونه 10 اختصاصی SQLDiag
SELECT GETDATE() AS snapshot_time,cpu_count,physical_memory_kb,committed_kb,committed_target_kb FROM sys.dm_os_sys_info;
| معیار خروجی | مقدار نمونه |
|---|
| ردیفهای مشاهدهشده | 14 |
| شاخص اصلی | ERRORLOG |
| وضعیت ارزیابی | نیازمند مقایسه با خط مبنا |
نکته فنی نمونه 10 در SQLDiag آن است که نتیجه نباید جدا از بازه زمانی، بار جاری و پیکربندی سرور تفسیر شود. برای جلوگیری از نتیجهگیری شتابزده، مقدار بهدستآمده را با یک نمونه پیشین مقایسه کنید و سپس درباره ثبت داده پیش از بازراهاندازی تصمیم بگیرید. در محیط پرترافیک، ابتدا هزینه خود ابزار را بسنجید؛ زیرا بسته جمعآوری ممکن است اطلاعات حساس داشته باشد و باید قبل از اشتراکگذاری بازبینی شود.
خطاهای رایج در کار با SQLDiag
- در SQLDiag، جمعآوری داده بدون سؤال مشخص خروجی حجیمی میسازد که هیچ تصمیمی را پشتیبانی نمیکند.
- نادیده گرفتن هشدار اصلی این ابزار: بسته جمعآوری ممکن است اطلاعات حساس داشته باشد و باید قبل از اشتراکگذاری بازبینی شود.
- در تحلیل SQLDiag، مقایسه دو بازه با حجم Workload متفاوت نتیجه بهبود یا افت را مخدوش میکند.
- پس از مشاهده SQLDiag، اعمال تغییر مستقیم در تولید بدون Baseline و معیار Rollback خطرناک است.
- تفسیر SQLDiag با تمرکز روی یک عدد و حذف زمینههایی مانند Wait، I/O، Lock و رفتار برنامه ناقص میماند.
ملاحظات کارایی و بهترین روشها در SQLDiag
هزینه پایش باید بخشی از طراحی باشد. برای SQLDiag دامنه داده را به رویداد، Database، Session یا بازه لازم محدود کنید. نرخ تولید داده را در پنج دقیقه نخست اندازه بگیرید؛ اگر رشد خروجی از انتظار بیشتر بود، فیلتر یا فاصله نمونهبرداری را اصلاح کنید. نتیجه معتبر زمانی ایجاد میشود که خود ابزار باعث تغییر محسوس در رفتار Workload نشود.
بهترین روش، ایجاد دفترچه تصمیم است: پرسش اولیه، زمان جمعآوری، نسخه SQL Server، تغییرات اخیر، معیارهای ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV، تفسیر، اقدام و نتیجه پس از اقدام ثبت شوند. برای سناریوی تحلیل Memory Pressure بهتر است داده قبل و بعد از تغییر با یک بار کاری مشابه مقایسه شود.
تصویر سوم، تصمیم فنی میان Baseline، مشاهده، هشدار Performance و Best Practice را برای SQLDiag و سناریوی ثبت Deadlock و Blocking خلاصه میکند.
سؤالات متداول اختصاصی SQLDiag
پرسش 1: SQLDiag دقیقاً چه مسئلهای را حل میکند؟
در زمینه SQLDiag، این ابزار برای گردآوری همزمان اطلاعات پیکربندی، Trace، Counter و لاگ طراحی شده است و داده را از ابزار sqldiag.exe و فایل پیکربندی XML میگیرد. ارزش اصلی آن زمانی آشکار میشود که نتیجه با خط مبنا و هدف کسبوکار مقایسه شود.
پرسش 2: برای شروع کار با SQLDiag چه پیشنیازی لازم است؟
در زمینه SQLDiag، دسترسی مشاهده DMVها یا مجوز مناسب ابزار، تعیین بازه پایش و شناخت بار عادی سامانه لازم است. پیش از اجرا نیز باید مشخص شود کدامیک از خروجیهای «ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV» واقعاً اهمیت دارد.
پرسش 3: آیا SQLDiag برای پروژه تجاری کوچک هم ارزش دارد؟
در زمینه SQLDiag، بله، اما دامنه جمعآوری باید متناسب با اندازه سامانه باشد. در پروژه کوچک میتوان از یک سناریوی محدود مانند جمعآوری هنگام کندی متناوب شروع کرد و تنها در صورت نیاز جزئیات بیشتری ثبت کرد.
پرسش 4: چگونه خروجی SQLDiag به کاهش هزینه عملیاتی کمک میکند؟
در زمینه SQLDiag، با شناسایی دقیق منبع مصرف یا رگرسیون، تیم از تغییرات حدسی دور میشود. این موضوع زمان عیبیابی، ریسک توقف سرویس و هزینه تهیه سختافزار بدون ضرورت را کاهش میدهد.
پرسش 5: SQLDiag با ابزارهای نزدیک چه تفاوتی دارد؟
در زمینه SQLDiag، تمایز اصلی در منبع داده و عمق تحلیل است؛ این موضوع بر ابزار sqldiag.exe و فایل پیکربندی XML تکیه دارد، در حالی که ابزار دیگر ممکن است فقط نمای لحظهای یا گزارش سطح سیستمعامل ارائه کند.
پرسش 6: برای پیادهسازی حرفهای SQLDiag چه خدماتی مفید است؟
در زمینه SQLDiag، طراحی Baseline، انتخاب فیلتر، ساخت گزارش، تحلیل خروجی و مستندسازی اقدام اصلاحی از خدمات رایج مشاوره SQL Server هستند. این مراحل باید با نیاز واقعی پروژه هماهنگ شوند.
پرسش 7: رایجترین خطا هنگام استفاده از SQLDiag چیست؟
در زمینه SQLDiag، رایجترین خطا تفسیر یک نمونه منفرد بدون زمینه است. همچنین باید به این هشدار توجه شود که بسته جمعآوری ممکن است اطلاعات حساس داشته باشد و باید قبل از اشتراکگذاری بازبینی شود.
پرسش 8: اثر Performance خود SQLDiag چگونه کنترل میشود؟
در زمینه SQLDiag، رویدادها یا Counterها را محدود، مدت جمعآوری را مشخص و حجم خروجی را اندازهگیری کنید. سپس مصرف CPU، I/O و فضای ذخیرهسازی ابزار را جدا از Workload اصلی ثبت کنید.
پرسش 9: بهترین روش عملی برای SQLDiag چیست؟
در زمینه SQLDiag، با یک پرسش مشخص مانند «ثبت داده پیش از بازراهاندازی» شروع کنید، داده حداقلی لازم را جمعآوری کنید، نتیجه را با Baseline بسنجید و اقدام اصلاحی را همراه با معیار بازگشت ثبت کنید.
پرسش 10: سازگاری نسخهای SQLDiag را چگونه بررسی کنیم؟
در زمینه SQLDiag، قابلیتها و نام DMVها میان نسخههای SQL Server، Azure SQL و SSMS میتوانند تفاوت داشته باشند. قبل از اجرای اسکریپت در تولید، آن را روی همان Edition و Compatibility Level آزمایش کنید.
سؤالات مصاحبه درباره SQLDiag
- توضیح دهید چرا SQLDiag برای جمعآوری هنگام کندی متناوب مناسب است.
- چگونه سربار SQLDiag را در یک سرور پرترافیک اندازهگیری میکنید؟
- بین خروجیهای ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV کدام معیار را برای تشخیص اولیه انتخاب میکنید و چرا؟
- اگر داده SQLDiag با تجربه کاربر ناسازگار باشد، چه منابع مکملی را بررسی میکنید؟
- یک برنامه بازگشت برای تغییری که بر اساس SQLDiag پیشنهاد شده طراحی کنید.
چکلیست نهایی SQLDiag
- در SQLDiag پرسش پایش برای جمعآوری هنگام کندی متناوب نوشته شده است.
- برای SQLDiag مجوز دسترسی به ابزار sqldiag.exe و فایل پیکربندی XML بررسی شده است.
- بازه زمانی و حجم خروجی SQLDiag محدود شده است.
- برای SQLDiag حداقل دو معیار از ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV ثبت شده است.
- تأثیر SQLDiag بر CPU، I/O و فضای دیسک سنجیده شده است.
- اقدام اصلاحی مبتنی بر SQLDiag و برنامه بازگشت مستند شده است.
جمعبندی آموزش SQLDiag
SQLDiag زمانی بیشترین ارزش را دارد که برای یک مسئله محدود مانند جمعآوری هنگام کندی متناوب به کار رود و خروجی آن با Baseline سنجیده شود. دادههای ERRORLOG، System Information، PerfMon Log، Trace و خروجی DMV باید در کنار زمینه Workload تفسیر شوند. با رعایت فیلتر، زمانبندی و کنترل سربار میتوان از این قابلیت برای تصمیمهای قابل دفاع در SQL Server استفاده کرد.
برای مقایسه SQLDiag با تمام گزینههای مجموعه، راهنمای جامع ابزارهای گرافیکی و خارجی عملکرد SQL Server را مطالعه کنید.
خدمات برنامهنویسی و پایگاه داده
برنامهنویسی در اصفهان؛ قبول سفارشهای برنامهنویسی و پایگاه داده با شماره 09131253620.
انجام پروژه، آموزش برنامهنویسی و آموزش SQL Server توسط مجموعهای معتبر با سابقه فعالیت حرفهای از سال ۱۳۷۵ شمسی تاکنون.
برای سفارش پروژههای برنامهنویسی، پایگاه داده، سیستمهای تحت وب، وبسایت و راهکارهای نرمافزاری با 09131253620 تماس بگیرید.
ایتا، واتساپ و تماس مستقیم: +989131253620؛ تماس با ما.