Power BI یکی از بهترین ابزارهای تحلیل داده است که به کسبوکارها کمک میکند گزارشهای تعاملی و بصری بسازند. اما گاهی سرعت اجرای کوئریها در Power BI بهخصوص با دادههای حجیم پایین میآید و تجربه کاربری را تحت تاثیر قرار میدهد.
در این مقاله با تابع کاربردی List.Buffer() در Power Query آشنا میشویم که باعث افزایش سرعت و بهینهسازی عملکرد کوئریها میشود.
تابع List.Buffer چیست؟
این تابع به شما امکان میدهد یک لیست از دادهها را در حافظه موقت (Buffer) ذخیره کنید تا محاسبات روی آن چندین بار تکرار نشود. این یعنی کوئری فقط یک بار روی دادهها عملیات انجام میدهد و سرعت اجرا افزایش مییابد.
مزایای استفاده از List.Buffer
- کاهش چشمگیر زمان اجرای کوئریها
- کاهش مصرف منابع سیستم مانند CPU و حافظه
- دسترسی سریعتر و مدیریت آسانتر دادهها در کوئری
مثال عملی
فرض کنید میخواهید رتبه فروش هر سفارش را بر اساس مبلغ فروش در جدول FactInternetSales دیتابیس AdventureWorksDW محاسبه کنید.
کد Power Query به شکل زیر است:
let
Source = Sql.Database("ServerName", "AdventureWorksDW"),
FactInternetSales = Source{[Schema = "dbo", Item = "FactInternetSales"]}[Data],
SalesAmountList = FactInternetSales[SalesAmount],
BufferedSalesAmountList = List.Buffer(SalesAmountList),
AddRankColumn = Table.AddColumn(FactInternetSales, "SalesRank", each List.PositionOf(BufferedSalesAmountList, [SalesAmount]) + 1)
in
AddRankColumn
در این کد:
- ابتدا به دیتابیس وصل میشویم.
- ستون فروش را استخراج میکنیم.
- با List.Buffer دادهها را در حافظه موقت ذخیره میکنیم.
- سپس ستون رتبه فروش را اضافه میکنیم که بر اساس SalesAmount محاسبه میشود.
کی و کجا باید از List.Buffer استفاده کنیم؟
- وقتی دادههای بزرگ و پیچیده داریم که بارها روی یک لیست عملیات انجام میشود
- در کوئریهایی با فیلترهای پیچیده یا محاسبات تکراری
- اگر میخواهید سرعت کوئری را افزایش دهید و محاسبات بیدلیل تکرار نشود
توجه: در دادههای کوچک و کوئریهای ساده، تاثیر زیادی ندارد و گاهی مصرف منابع را افزایش میدهد.
اشتباهات رایج هنگام استفاده از List.Buffer
- استفاده بیش از حد و بدون تحلیل نیاز واقعی
- ذخیره لیستهای بسیار بزرگ بدون بررسی منابع سیستم
- اشتباه گرفتن تفاوت List.Buffer با Table.Buffer
- تست نکردن عملکرد قبل و بعد از بهکارگیری تابع
مقایسه List.Buffer و Table.Buffer
ویژگی | List.Buffer | Table.Buffer |
---|---|---|
کاربرد | ذخیره موقت لیستها | ذخیره موقت کل جدول |
میزان مصرف حافظه | کمتر (لیست کوچکتر است) | بیشتر (کل جدول ذخیره میشود) |
موارد استفاده | لیستهای کوچک یا متوسط | بهینهسازی کامل جدولها |
سوالات متداول (FAQ)
۱. List.Buffer چگونه سرعت کوئری را افزایش میدهد؟
با ذخیره دادهها در حافظه موقت، محاسبات تکراری حذف شده و سرعت پردازش بالا میرود.
۲. تفاوت List.Buffer و Table.Buffer چیست؟
List.Buffer فقط لیستها را ذخیره میکند، اما Table.Buffer کل جدول را در حافظه نگه میدارد.
۳. آیا استفاده از List.Buffer همیشه توصیه میشود؟
خیر، در دادههای کوچک یا کوئریهای ساده بهتر است استفاده نشود چون ممکن است منابع را بیجهت مصرف کند.
۴. چگونه مطمئن شویم که List.Buffer تاثیر مثبت داشته؟
میتوانید با ابزار Performance Analyzer در Power BI زمان اجرای کوئری را قبل و بعد از استفاده بررسی کنید.
نتیجهگیری
این تابع ابزاری کاربردی برای افزایش سرعت و بهینهسازی کوئریهای Power BI است. استفاده درست از آن باعث میشود گزارشها سریعتر و با کارایی بالاتر اجرا شوند.
برای موفقیت تحلیل دادهها همراه لاندا باشید
شرکت لاندا با تیم متخصص خود در زمینه Power BI، بهینهسازی کوئریها و طراحی داشبوردهای حرفهای، آماده است کسبوکار شما را در مسیر تحلیل دادههای دقیقتر و سریعتر همراهی کند.
نظری داده نشده