نحوه ثبت کوئریهای SQL تولید شده توسط Power BI
قبل از اینکه به شما نشان دهیم چگونه میتوانید از SQL Server Management Studio (SSMS) و ویژگی داخلی آن، SQL Server Profiler، استفاده کنید، اجازه دهید به طور خلاصه توضیح دهم که در پسزمینه چه اتفاقی میافتد: Power BI Desktop یک نمونه محلی از Analysis Service Tabular را اجرا میکند. بنابراین، میتوانید این نمونه را مانند هر رویداد دیگری، با استفاده از SQL Server Profiler ردیابی کنید.
ما در مثالها از یک پایگاه داده نمونه Contoso استفاده خواهیم کرد.
اولین کاری که باید انجام دهید این است که SQL Server Profiler را در نوار ابزار SSMS فعال کنید:
گزارش Power BI ما نسبتاً ساده است و فقط شامل سه تصویر است:
مهمترین نکتهای که باید در مورد DirectQuery در نظر داشته باشید این است که هر زمان که با گزارش تعامل میکنید، تک تک عناصر بصری، کوئری را به یک منبع داده ارسال میکنند، حتی اگر با آن عنصر بصری خاص تعامل نداشته باشید! در مثال من، هر بار که کاری روی گزارشم انجام میدهم، دو کوئری جداگانه به پایگاه داده SQL اصلی Contoso ارسال میشود.
بیایید SQL Server Profiler را روشن کنیم و بررسی کنیم که چه اتفاقی میافتد:
در اینجا، میتوانید ببینید که وقتی مقدار Dates slicer خود را تغییر دادم، Power BI دو کوئری جداگانه (برای هر یک از تصاویر ما) اجرا کرد! میتوانید در بخش SQL: BatchCompleted event class جزئیات بیشتری در مورد هر یک از این کوئریها مشاهده کنید: چقدر طول کشید تا اجرا شود، چند بار خوانده شد و غیره.
ثبت کوئریهای SQL توسط Power BI
اما مهمترین چیز این است که میتوانید SQL تولید شده توسط Power BI را ضبط کنید:
حالا میتوانید این کوئری را کپی کرده و برای DBA خود ارسال کنید تا او تصمیم بگیرد که آیا جایی برای بهبود عملکرد وجود دارد یا خیر (شاید اضافه کردن ایندکس یا چیز دیگری).
در صورتی که با SQL Server Profiler و سایر ابزارهای «سنتی» آشنا نیستید، میتوانید از ویژگی Performance Analyzer در خود Power BI Desktop، در همکاری با DAX Studio، برای دستیابی به همان نتیجه استفاده کنید!
فقط تصاویر را رفرش کنید، و باید بتوانید کل زمانها را برای هر تصویر در بوم گزارش خود ببینید:
گزینه کپی کردن کوئری را انتخاب کنید و مستقیماً به DAX Studio بروید. پس از اینکه کوئری کپی شده را در پنجره اصلی پیست کردید، به پایین اسکرول کنید تا کوئری SQL را مشاهده کنید.
در صورتی که چندین کوئری داشته باشید (مثلاً ما در مثال خود دو کوئری داریم، اما ممکن است گاهی اوقات بیش از 10 کوئری داشته باشید)، رفت و برگشت، کپی و پیست کردن کوئریها یکی یکی میتواند بسیار دشوار باشد.
شما باید دکمه «همه کوئریها» را در DAX Studio فعال کنید و چند لحظه صبر کنید تا ردیابی کوئری شروع شود:
حالا، به Power BI Desktop برگردید و تصاویر را رفرش کنید. پس از اتمام کار، دوباره DAX Studio را باز کنید و به تب All queries بروید:
حالا همه کوئریهای من به طور همزمان ثبت میشوند! و وقتی تب «همه کوئریها» را خاموش و تب «زمانبندی سرور/Server Timings» را روشن کنم، میتوانم روی یک کوئری خاص کلیک کنم:
ثبت کوئریهای SQL تولید شده توسط Power BI
وقتی روی کوئری انتخاب شده دوبار کلیک کنم، کد DAX در پنجره اصلی ظاهر میشود، بنابراین میتوانم روی Run کلیک کنم و به تب Server Timings در پایین بروم:
در آنجا، نه تنها میتوانید کوئریهای SQL تولید شده توسط Power BI را پیدا کنید، بلکه میتوانید معیارهای مختلف مربوط به عملکرد سرور، مانند زمان CPU را نیز مشاهده کنید. همچنین میتوانید بررسی کنید که موتور فرمول (FE) و موتور ذخیرهسازی (SE) برای برآورده کردن درخواست چقدر زمان لازم دارند.
برای خرید لایسنس نرم افزار Power BI ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.