PDA

View Full Version : آشنايي با STATISTICS PROFILE



smakhavan
شنبه 22 تیر 1387, 09:58 صبح
با سلام
ميشه اساتيد محترم يك كم در باره نحوه بررسي STATISTISC PROFILE توضيح بدهند كه چه جوري ميشه بررسي كرد كه كجا گلوگاه كار هست و آيا با ايندكس ميشه درستش كرد يا نه
به عنوان مثال در قسمت Stmt text با عباراتي نظير nested loop - index seek - table spool- hash match , ... برخورد ميكنيم هركدام از اينها به چه معنا است؟ همچنين قسمت هاي مختلف ديگه.
بهتر بپرسم چه جوري بررسي يه كوري را آغاز ميكنند؟

AminSobati
شنبه 22 تیر 1387, 11:51 صبح
سلام،
خروجی این دستور مشابه Graphical Execution Plan هست و من توصیه میکنم به خاطر سهولت درک حالت Graphical شما از اینجا شروع کنید. بعد از کسب مهارت، در صورت نیاز به Statistics Profile رجوع کنید.
در خصوص Operatorها که سوال کردین، توضیحی برای هر کدوم در Books Online وجود داره

DataMaster
شنبه 22 تیر 1387, 14:36 عصر
بهتر بپرسم چه جوري بررسي يه كوري را آغاز ميكنند؟
آقاي ثباتي اگه ممكنه در مورد اين قسمت بيشتر توضيح بديد كه چطوري كارايي كدهايي كه مي نويسيم رو بررسي كنيم

AminSobati
شنبه 22 تیر 1387, 16:08 عصر
یک Plan با زبان خودش به شما میگه که آیا Query بصورت خوبی داره اجرا میشه یا خیر. فرضا وقتی برای جستجویی که تعداد کمی رکورد برمیگرده، یک جدول بزرگ داره Scan میشه، این یک نشانه از فقدان ایندکس مناسب هست. یا وقتی Joinهای شما با وجود امکان استفاده از الگوریتم Merge یا Nested Loop، به خاطر نبودن ایندکس مناسب از Hash استفاده میکنه، میتونه نشانه دیگه ای باشه. همچنین رخ دادن Sortهای سنگین قبل از Group By باز هم دال بر همین مطلب هست.

smakhavan
یک شنبه 23 تیر 1387, 09:17 صبح
فرضا وقتی برای جستجویی که تعداد کمی رکورد برمیگرده، یک جدول بزرگ داره Scan میشه، این یک نشانه از فقدان ایندکس مناسب هست. یا وقتی Joinهای شما با وجود امکان استفاده از الگوریتم Merge یا Nested Loop، به خاطر نبودن ایندکس مناسب از Hash استفاده میکنه، میتونه نشانه دیگه ای باشه. همچنین رخ دادن Sortهای سنگین قبل از Group By باز هم دال بر همین مطلب هست.

ممنون
من هم دنبال همچين مطالبي ميگردم. اقاي ثباتي شما اولين نگاهي كه به يك پلن يا پروفايل ميندازين چه چيزي را نگاه ميكنين. بعد از اون چي؟ ميدونم يك كار تجربيه و بايد در اين كار حرفه اي شد. اما بايد از يه جايي شروع كرد و به اصطلاح سر نخ را پيدا كرد!
حالا اگه بخواهيم مراحل تست و رهگيري گلوگاه را 1 - 2 - 3 ... كنيم چكار ميكنين

AminSobati
دوشنبه 24 تیر 1387, 14:23 عصر
طبیعتا هر Operator یک Cost داره، من دنبال بزرگترینش میگردم. بعد سعی کنین خودتون رو جای SQL Server قرار بدین! یعنی ببینین هدف اصلی چی بوده که این Cost تحمیل شده. و بعد Index مورد نیاز رو در اختیارش قرار بدین