فروش لایسنس Power BI

با ما داده های خود را درک کنید تا برای آینده کسب و کارتان بهتر تصمیم گیری کنید.

DirectQuery

استفاده از DirectQuery در Power BI Desktop

توصیه‌هایی برای استفاده از DirectQuery

این بخش راهنمایی‌های کلی در مورد نحوه استفاده موفق از DirectQuery با در نظر گرفتن تأثیرات آن را ارائه می‌دهد.

عملکرد منبع داده‌ی زیرین

بررسی کنید که ویژوال‌های ساده در کمتر از پنج ثانیه تازه‌سازی شوند تا یک تجربه تعاملی مناسب فراهم شود.  اگر ویژوال‌ها بیش از 30 ثانیه برای تازه‌سازی زمان نیاز دارند، احتمالاً مشکلات بیشتری پس از انتشار گزارش ایجاد خواهد شد و راه‌حل قابل اجرا نخواهد بود.

اگر پرس‌وجوها کند هستند، باید بررسی کنید که چه نوع پرس‌وجوها به منبع داده ارسال شده و علت کندی عملکرد چیست.

 استانداردهای عمومی پایگاه داده عبارتند از:

  •  برای بهبود عملکرد، روابط را بر پایه ستون‌های عدد صحیح (Integer columns) قرار دهید، نه بر اساس اتصال ستون‌هایی با انواع داده دیگر.
  • ایجاد ایندکس‌های مناسب – معمولاً این کار شامل استفاده از ایندکس‌های ستونی (Column store indexes) در منابعی است که از آن‌ها پشتیبانی می‌کنند، مانند SQL Server.
  • به‌روزرسانی آمارهای ضروری (Statistics) در منبع داده.

طراحی مدل در DirectQuery

هنگام تعریف مدل داده در Power BI، توصیه‌های زیر را دنبال کنید:

  • از پرس‌وجوهای پیچیده در Power Query Editor اجتناب کنید.
  • Power Query Editor یک پرس‌وجوی پیچیده را به یک SQL Query واحد ترجمه می‌کند.
  • این پرس‌وجوی واحد در زیرانتخاب (Subselect) هر پرس‌وجویی که به آن جدول ارسال می‌شود، ظاهر می‌شود.
  • اگر این پرس‌وجو پیچیده باشد، ممکن است عملکرد تمام پرس‌وجوهای ارسال‌شده را تحت تأثیر قرار دهد.
  • برای دریافت پرس‌وجوی SQL واقعی برای مجموعه‌ای از مراحل، روی آخرین مرحله در زیر Applied Steps راست‌کلیک کرده و View Native Query را انتخاب کنید.
  • مقادیر اندازه‌گیری (Measures) را ساده نگه دارید. 
  • در ابتدا، محدود کردن Measures به تجمیع‌های ساده توصیه می‌شود.
  • اگر عملکرد Measures رضایت‌بخش بود، می‌توانید Measures پیچیده‌تر تعریف کنید اما به عملکرد آن‌ها توجه داشته باشید.
  • از ایجاد روابط بر روی ستون‌های محاسبه‌شده اجتناب کنید. 
  • در پایگاه‌های داده‌ای که نیاز به پیوند چندین ستون دارند، Power BI اجازه تعریف روابط بر اساس چندین ستون به‌عنوان کلید اصلی یا کلید خارجی را نمی‌دهد. 
  • راه‌حل متداول، ادغام ستون‌ها با استفاده از یک ستون محاسبه‌شده (Calculated Column) است.  اما در DirectQuery این روش باعث اجرای اتصال بر روی یک عبارت می‌شود و معمولاً استفاده از ایندکس‌ها را غیرممکن کرده و عملکرد را کاهش می‌دهد

راه‌حل جایگزین: مادی‌سازی (Materialize) چندین ستون به یک ستون در منبع داده‌ی اصلی.

  • از ایجاد روابط بر روی ستون‌های “uniqueidentifier” اجتناب کنید.
  •  Power BI به‌طور بومی از نوع داده uniqueidentifier پشتیبانی نمی‌کند.
  • تعریف یک رابطه بین ستون‌های uniqueidentifier باعث ایجاد پرس‌وجو با اتصال شامل Cast می‌شود.
  • این رویکرد معمولاً باعث کاهش عملکرد می‌شود.

راه‌حل جایگزین: مادی‌سازی ستون‌ها با یک نوع جایگزین در منبع داده‌ی اصلی.

  • ستون “to” در روابط را مخفی کنید.
  • این ستون معمولاً کلید اصلی در جدول مقصد است.
  • اگر مخفی شود، در لیست فیلدها نمایش داده نمی‌شود و نمی‌توان از آن در ویژوال‌ها استفاده کرد.
  • اغلب ستون‌هایی که روابط بر اساس آن‌ها تعریف می‌شوند، در واقع ستون‌های سیستمی هستند، مانند کلیدهای جایگزین (Surrogate Keys) در انبار داده.
  • بهترین روش همچنان مخفی کردن این ستون‌ها است.

اگر ستون دارای ارزش معنایی باشد، یک ستون محاسبه‌شده معرفی کنید که مقدار آن برابر با کلید اصلی باشد، مثلاً:

ProductKey_PK (Destination of a relationship, hidden)

ProductKey (= [ProductKey_PK], visible)

ProductName …

 

بررسی ستون‌های محاسبه‌شده و تغییرات نوع داده

هنگام استفاده از DirectQuery در مدل‌های ترکیبی (Composite Models)، می‌توانید جداول محاسبه‌شده (Calculated Tables) را استفاده کنید.  این قابلیت‌ها لزوماً مضر نیستند، اما باعث می‌شوند که پرس‌وجوها شامل عبارات به جای ارجاع ساده به ستون‌ها باشند.  این امر می‌تواند منجر به عدم استفاده از ایندکس‌ها در پرس‌وجوها شود و باعث کاهش عملکرد گردد.

اجتناب از فیلترگذاری متقابل دوطرفه

از فیلترگذاری متقابل دوطرفه (Bidirectional Cross Filtering) در روابط پرهیز کنید.  استفاده از Bidirectional Cross Filtering ممکن است باعث ایجاد پرس‌وجوهایی شود که عملکرد مطلوبی ندارند.

تنظیم Assume Referential Integrity

از گزینه “Assume Referential Integrity” برای بهبود عملکرد پرس‌وجوها استفاده کنید.  این تنظیم در روابط به پرس‌وجوها امکان می‌دهد که از INNER JOIN به‌جای OUTER JOIN استفاده کنند.  این روش معمولاً عملکرد پرس‌وجوها را بهبود می‌بخشد، اما اثربخشی آن به ویژگی‌های خاص منبع داده بستگی دارد.

اجتناب از فیلترگذاری تاریخ نسبی در Power Query Editor

از فیلترگذاری تاریخ نسبی (Relative Date Filtering) در Power Query Editor استفاده نکنید.  در Power Query Editor امکان تعریف فیلترگذاری تاریخ نسبی وجود دارد، مثلاً می‌توانید ردیف‌هایی را که تاریخ آن‌ها در ۱۴ روز گذشته است فیلتر کنید.  این روش ممکن است باعث ایجاد پرس‌وجوهایی شود که عملکرد خوبی ندارند.

DirectQuery
با این حال، این فیلتر به فیلتری بر اساس یک تاریخ ثابت، مانند زمان نگارش کوئری، تبدیل می‌شود، همانطور که در کوئری بومی مشاهده می‌کنید.
DirectQuery
احتمالاً این داده‌ها آن چیزی نیستند که شما می‌خواهید. برای اطمینان از اینکه فیلتر بر اساس تاریخ در زمان اجرای گزارش اعمال می‌شود، فیلتر تاریخ را در گزارش اعمال کنید. می‌توانید با استفاده از تابع DAX DATE() یک ستون محاسباتی ایجاد کنید که تعداد روزهای قبل را محاسبه کند و از آن ستون محاسبه شده در فیلتر استفاده کنید.

طراحی گزارش
هنگامی که گزارشی ایجاد می‌کنید که از اتصال DirectQuery استفاده می‌کند، این راهنمایی را دنبال کنید:

استفاده از گزینه‌های کاهش پرس‌وجو را در نظر بگیرید: Power BI گزینه‌هایی را برای گزارش ارائه می‌دهد تا پرس‌وجوهای کمتری ارسال شود و در صورت طولانی شدن زمان اجرای پرس‌وجوهای حاصل، تعاملات خاصی که باعث تجربه ضعیف می‌شوند غیرفعال شوند. این گزینه‌ها هنگام تعامل با گزارش خود در Power BI Desktop اعمال می‌شوند و همچنین هنگام استفاده کاربران از گزارش در سرویس Power BI اعمال می‌شوند.

برای دسترسی به این گزینه‌ها در Power BI Desktop، به File > Options and settings > Options بروید و کاهش پرس‌وجو را انتخاب کنید.

DirectQuery

کاهش پرس‌وجوها در Power BI

در صفحه تنظیمات کاهش پرس‌وجو (Query reduction)، می‌توانید گزینه‌ای برای نمایش دکمه “اعمال (Apply)” در فیلترها و برش‌دهنده‌ها انتخاب کنید.  تا زمانی که این دکمه را انتخاب نکنید، هیچ پرس‌وجویی ارسال نمی‌شود.  پس از انتخاب دکمه Apply، پرس‌وجوها براساس فیلترهای انتخاب‌شده شما اجرا می‌شوند.  این قابلیت به شما امکان می‌دهد قبل از اعمال تغییرات، چندین فیلتر و برش‌دهنده را انتخاب کنید.

ابتدا فیلترها را اعمال کنید

همیشه فیلترهای موردنیاز را در ابتدای ساخت ویژوال اعمال کنید.  به جای اینکه ابتدا TotalSalesAmount و ProductName را به ویژوال اضافه کنید و سپس فیلتر سال را اعمال کنید،  ابتدا فیلتر سال را مشخص کنید.

هر مرحله‌ای در ساخت یک ویژوال، یک پرس‌وجو ارسال می‌کند.  اگرچه امکان ایجاد تغییرات جدید قبل از تکمیل پرس‌وجوی قبلی وجود دارد، اما این کار باعث افزایش بار غیرضروری روی منبع داده می‌شود.

اعمال فیلترها در ابتدا، پرس‌وجوهای میانی را کم‌هزینه‌تر می‌کند.  در صورتی که فیلترها را زودتر اعمال نکنید، ممکن است به محدودیت یک میلیون ردیف برخورد کنید.

محدود کردن تعداد ویژوال‌ها در هر صفحه

هنگامی که صفحه‌ای را باز می‌کنید یا فیلتر سطح صفحه را تغییر می‌دهید، تمام ویژوال‌های صفحه تازه‌سازی می‌شوند.  یک محدودیت در تعداد پرس‌وجوهای موازی وجود دارد. ✔ با افزایش تعداد ویژوال‌ها، برخی ویژوال‌ها به‌صورت سریال تازه‌سازی می‌شوند، که زمان بارگذاری صفحه را افزایش می‌دهد.

بهتر است تعداد ویژوال‌ها را در هر صفحه محدود کنید و در عوض، صفحات ساده‌تر و بیشتری داشته باشید.

غیرفعال کردن تعامل بین ویژوال‌ها

به‌طور پیش‌فرض، ویژوال‌ها در صفحات گزارش می‌توانند برای فیلترگذاری متقابل و برجسته‌سازی متقابل سایر ویژوال‌ها استفاده شوند.  مثلاً اگر روی سال 1999 در نمودار دایره‌ای کلیک کنید، نمودار ستونی به‌طور متقابل برجسته‌سازی می‌شود تا میزان فروش بر اساس دسته‌بندی را برای سال 1999 نمایش دهد.

در برخی موارد، غیرفعال کردن تعامل بین ویژوال‌ها می‌تواند عملکرد گزارش را بهبود دهد.

DirectQuery

فیلترینگ متقاطع و برجسته‌سازی متقاطع در DirectQuery مستلزم ارسال پرس‌وجوها به منبع اصلی است. اگر زمان پاسخگویی به انتخاب‌های کاربران به طور غیرمنطقی طولانی است، باید این تعامل را غیرفعال کنید.

می‌توانید از تنظیمات کاهش پرس‌وجو برای غیرفعال کردن برجسته‌سازی متقاطع در کل گزارش خود یا به صورت موردی استفاده کنید.

حداکثر تعداد اتصالات

شما می‌توانید حداکثر تعداد اتصالاتی را که DirectQuery برای هر منبع داده‌ی اصلی باز می‌کند، تنظیم کنید، که تعداد پرس‌وجوهای همزمان ارسال شده به هر منبع داده را کنترل می‌کند.

DirectQuery به طور پیش‌فرض حداکثر 10 اتصال همزمان را باز می‌کند. برای تغییر حداکثر تعداد برای فایل فعلی در Power BI Desktop، به File > Options and Settings > Options بروید و DirectQuery را در بخش Current File در پنل سمت چپ انتخاب کنید.

DirectQuery

این تنظیم فقط زمانی فعال می‌شود که حداقل یک منبع DirectQuery در گزارش فعلی وجود داشته باشد. این مقدار برای همه منابع DirectQuery و هر منبع DirectQuery جدیدی که به آن گزارش اضافه شده است، اعمال می‌شود.

افزایش حداکثر اتصالات در هر منبع داده، امکان ارسال پرس‌وجوهای بیشتر، تا حداکثر تعداد مشخص شده، به منبع داده اصلی را فراهم می‌کند. این رویکرد زمانی مفید است که بسیاری از تصاویر در یک صفحه واحد باشند، یا بسیاری از کاربران همزمان به یک گزارش دسترسی داشته باشند. پس از رسیدن به حداکثر تعداد اتصالات، پرس‌وجوهای بیشتر در صف قرار می‌گیرند تا زمانی که یک اتصال در دسترس قرار گیرد. محدودیت بالاتر منجر به بار بیشتر روی منبع اصلی می‌شود، بنابراین تضمینی برای بهبود عملکرد کلی توسط این تنظیم وجود ندارد.

هنگامی که گزارشی را در سرویس Power BI منتشر می‌کنید، حداکثر تعداد پرس‌وجوهای همزمان به محدودیت‌های ثابت تعیین شده در محیط هدف که گزارش در آن منتشر می‌شود نیز بستگی دارد. Power BI، Power BI Premium و Power BI Report Server محدودیت‌های متفاوتی را اعمال می‌کنند.

محدودیت‌های اتصال

جدول زیر محدودیت‌های بالای اتصالات فعال در هر منبع داده را برای هر محیط Power BI فهرست می‌کند. این محدودیت‌ها برای منابع داده ابری و منابع داده داخلی مانند SQL Server، Oracle و Teradata اعمال می‌شود.

Environment Upper limit per data source
Power BI Pro 10 active connections
Power BI Premium Depends on semantic model SKU limitation
Power BI Report Server 10 active connections

برای خرید لایسنس نرم افزار Power BI ، می‌توانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.

فرم درخواست لایسنس Power BI

 

میتوانید پاور بی آی دسکتاپ رایگان را دانلود کنید : Power BI desktop download

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا