نامگذاری آمار توسط SQL Server

نامگذاری آمار توسط SQL Server

نوشته شده توسط: تورج عزیزی
۰۸ مهر ۱۳۹۴
زمان مطالعه: دقیقه
۰
(۰)

مقدمه

این مقاله در مورد چگونگی نامگذاری اشیای آمار که به طور خودکار در زمان اجرای کوئری ساخته می شوند می باشد. دوستانی که با مبحث آمار آشنایی ندارند می تونن به این دو لینک به عنوان پیش نیاز مراجعه کنند:
در ابتدا اجازه بدید یک جدول بدون ایندکس بسازیم و سپس چند کوئری رو اون اجرا کنیم:
USE master;
GO
CREATE DATABASE StatsTest;
GO
USE StatsTest;
GO
EXEC sp_dboption 'StatsTest', 'auto create statistics', 'on';
GO
CREATE TABLE t1 (c1 INT, c2 INT, c3 INT);
GO
INSERT INTO t1 VALUES (1, 1, 1);
INSERT INTO t1 VALUES (1, 1, 2);
INSERT INTO t1 VALUES (1, 1, 3);
GO
بعد گزینه AUTO_CREATE_STATISTICS دیتابیس رو فعال می کنیم:
ALTER DATABASE StatsTest
SET AUTO_CREATE_STATISTICS ON
بعد کوئری زیر رو اجرا می کنیم:
SELECT * FROM t1 WHERE c3 < 2;
GO
SELECT [object_id], [name] FROM sys.stats
WHERE [object_id] = OBJECT_ID ('t1');
GO
object_id name
———– ————————–
۲۰۷۳۰۵۸۴۲۱ _WA_Sys_00000003_7B905C75

همونطوری که در خروجی می بینید یک شیء آمار با نام _WA_Sys_00000003_7B905C75 توسط Query Optimizer به طور خودکار تولید شده و علت اون هم مفید بودن وجود چنین آماری است و به همین دلیل است که فعال بودن گزینه AUTO_CREATE_STATISTICS توصیه می شود.
اما در مورد چگونگی نامگذاری باید بگم _WA_ دو حرف اول کلمه Washington است و علت انتخاب این اسم هم قرار داشتن تیم توسعه SQL Server در این شهر است. sys به معنی تولید خودکار این شی است.  ۰۰۰۰۰۰۰۳ یعنی آمار روی ستون سوم جدول ایجاد شده و ۷B905C75 هم معادل هگزادسیمال آی دی جدول است.
اگر کوئری را به فرم زیر بنویسید یک شی آمار دوباره برای ستون شرکت کننده در شرط کوئری ساخته می شود:

SELECT * FROM t1 WHERE c1 < 2;
GO
SELECT [object_id], [name] FROM sys.stats
WHERE [object_id] = OBJECT_ID ('t1');
GO
object_id name
———– ————————–
۲۰۷۳۰۵۸۴۲۱ _WA_Sys_00000003_7B905C75
۲۰۷۳۰۵۸۴۲۱ _WA_Sys_00000001_7B905C75
همونطوری که می بینید شی آماری با همان اسم ایجاد شده فقط به جای ۳ عدد ۱ نشسته یعنی ستون اول (c1).اگه به قسمت Statistics جداولتون نگاه کنید احتمالاً اشیایی با نام هایی که با _WA_Sys_ شروع میشن رو میبینید:

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
معرفی نویسنده
تورج عزیزی
مقالات
17 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تورج عزیزی
پروفایل نویسنده
title sign
دیدگاه کاربران

    •     سلام بسیار خوب و عالی بود با تشکر

    •    سلام مقالتون عالی بود

    •    برای شروع عالی بود.

    •   سلام
       خسته نباشید
      مقاله عالی بود بخصوص معرفی لینک پیش نیازها که بسیار کار خوبی هست  که درک مقاله را راحت تر کرد …متشکرم

هر روز یک ایمیل، هر روز یک درس
آموزش SQL Server بصورت رایگان
همین حالا فرم زیر را تکمیل کنید
دانلود رایگان جلسه اول
نیک آموز علاوه بر آموزش، پروژه‌های بزرگ در حوزه هوش تجاری و دیتا انجام می‌دهد.
close-link
جشنواره عیدآموز نیک آموز، سال جدید رو با قدرت شروع کن
مشاهده تخفیف ها
close-image