簡體   English   中英

我可以提高 excel 到 sql powerquery 的性能嗎? 我正在使用命名范圍參數而不是單元格值?

[英]Can I improve excel to sql powerquery performance? I'm using named range parameters instead of cell values?

這是我的第一篇文章,所以我希望我的問題能通過 OK 解決。

我在 excel 中設計了一個產品配置器應用程序。 使用一系列下拉菜單和用戶表單,我可以構建我的產品外觀的基本正面圖,同時還導出將構成產品的子組件名稱列表。 可以在隱藏的工作表上查看此子裝配列表。 組成產品可能需要 200 多個這些。

(例如,我的產品最多可以由 16 個部分組成。每個部分可以有 15 個不同的子組件。所以我的完整產品可以有大約 240 個不同子組件的組合,具體取決於具體要求。)

我在存儲子組件的子組件工作表上命名了單元格。 此子程序集名稱是動態的,具體取決於配置器中的選擇。

(例如,單元名稱 - ARE_Section01 單元中的動態子組件名稱 - AU_ARE_36_36_GA11_AL3_X_13_3__ANSI_61_ 或 AU_ARE_22_36_GA11_GA11_R_13_3__ANSI_61_ 或 AU_ARE_22_31_GA11_或 AU_ARE_22_31_GA11_1_GA3_1_3_1_1_1_GA3_1_3_1_1_1_63

示例圖像

為了構建頂級材料清單,我從 SQL Server 中提取信息,其中每個可能的子組件(其中超過 700 個)都有一個表。 使用 PowerQuery,我對上面提到的 16 個部分中的每一個的 15 個子程序集都有一個查詢。 在這些查詢中,我使用了一個查看相關命名單元格值而不是硬編碼值的參數。 這意味着我將只有 240 個查詢而不是 700+。

(例如,讓 Source = Sql.Database("x_BJMCC\\SQLEXPRESS", "AMX"), dbo_AU_ARE_22_36_GA11_GA11_R_13_3__ANSI_61_ = Source{[Schema="dbo",Item= GetValue("ARE_Section01") ]}[Data_2_AU_1GA1_GA11_GA11_GA11_GA11_136_16_1_2_AU_1_GA11_GA1_16_16_1GA_16_AMX_10_16_16_16_16_16_11_aMX

然后我對附加所有相關子程序集的 16 個部分中的每一個都有一個查詢。 然后我有一個頂級面板查詢,它附加了所有部分查詢。

我希望到目前為止我已經正確解釋了這一點......

我的問題是這個...

當我將程序集名稱硬編碼到查詢中時,信息會很快從 SQL 中提取出來。 但是當我使用參數(如上)時,它的速度要慢得多。

有沒有人對我如何提高性能有任何提示?

我猜,問題出在你的 GetValue 函數上。 例如,使用 Ken Puls 的fnGetParameter函數不會破壞查詢折疊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM