در SQL Server، Statistics مجموعهای از اطلاعات آماری درباره توزیع دادهها در یک ستون یا مجموعهای از ستونها است. این آمارها به Query Optimizer کمک میکنند تا مسیرهای بهینهای برای اجرای کوئریها انتخاب شود. بهعبارت سادهتر، Statistics به SQL Server کمک میکند تا بهترین تصمیمها را برای اجرای سریعتر و بهینهتر کوئریها بگیرد.
Statistics چیست و چه زمانی ساخته میشود؟
Statistics ممکن است به صورت:
- خودکار (Auto Created) در زمان اجرای کوئری یا تغییر دادهها (INSERT, UPDATE, DELETE)، یا
- دستی (Manual) توسط DBA ایجاد یا بروزرسانی شود.
اجزای اصلی SQL Server Statistics
- Histogram (هیستوگرام)
نموداری از توزیع مقادیر در یک ستون که برای تخمین بهتر در WHERE و JOIN استفاده میشود. - Density Vector (بردار تراکم)
اطلاعاتی درباره تکرار مقادیر خاص در ستون. - تعداد رکوردها و رکوردهای یکتا
آماری از تعداد کل و یکتای رکوردها که به انتخاب روش اجرای بهتر کمک میکند.
چرا Statistics اهمیت دارد؟
- افزایش سرعت اجرای کوئریها
- بهبود فیلتر کردن و جستجو
- بهینهسازی JOIN و ORDER BY
- تصمیمگیری دقیق بین Index Seek یا Scan
نحوه ایجاد و بهروزرسانی Statistics
ایجاد دستی Statistics:
CREATE STATISTICS stats_ColumnName
ON TableName (ColumnName);
بهروزرسانی دستی:
UPDATE STATISTICS YourTableName;
فعالسازی بروزرسانی خودکار:
ALTER DATABASE YourDatabaseName
SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE YourDatabaseName
SET AUTO_UPDATE_STATISTICS ON;
مشکلات ناشی از عدم بهروزرسانی SQL Server Statistics
- کندی در اجرای کوئریها
- انتخاب اشتباه نوع Join یا فیلتر
- استفاده از Index Scan بهجای Index Seek
راهکارهای بهروزرسانی منظم Statistics
روش بروزرسانی | توضیح |
---|---|
Auto Update | بروزرسانی خودکار هنگام تغییر زیاد در دادهها |
Jobهای زمانبندیشده | اجرای منظم بروزرسانی در ساعات مشخص |
Trace Flag 2371 | بروزرسانی هوشمند بر اساس حجم دیتابیس |
اجرای دستی | کنترل کامل زمان و محل بروزرسانی توسط DBA |
پرسشهای پرتکرار (FAQ)
آیا همهی کوئریها از Statistics استفاده میکنند؟
بله، Optimizer در اکثر موارد برای تخمین مسیر اجرای بهتر، از Statistics بهره میبرد.
Statistics به تنهایی جای ایندکس را میگیرد؟
خیر، اما مکمل ایندکسها برای اجرای سریعتر کوئریهاست.
چطور بفهمم SQL Server Statistics من قدیمی شده؟
با استفاده از DMV یا ابزارهای مانیتورینگ میتوانید زمان آخرین بروزرسانی Statistics را بررسی کنید.
ارتباط و مشاوره
اگر در بهینهسازی SQL Server یا مدیریت Statistics نیاز به مشاوره یا اجرا دارید، تیم فنی شرکت لاندا آماده ارائه خدمات تخصصی است.
نظری داده نشده