SQL 最佳化
您可以直接在資料庫中推送許多資料準備及採礦作業以提高效能。
SPSS Modeler 最強大的功能之一是能夠直接在資料庫中執行許多資料準備和採礦作業。 通過產生可回送到資料庫進行執行的 SQL 代碼,很多作業(如取樣、排序、衍生新欄位以及某些類型的繪圖)可以在資料庫中執行,而不必在用戶端或伺服器電腦上執行。 當您對大的資料集進行操作時,這些回送可在以下幾個方面顯著地增強效能:
- 減少要從 DBMS 傳送至 Cloud Pak for Data的結果集大小。 通過 ODBC 驅動程式讀取大型結果集時,可能會導致網路 I/O 或驅動程式的效率較低。 因此,由於 SQL 最佳化而受益最多的作業是列和欄的選擇和聚集(「選取」、「樣本」和「聚集」節點),這樣通常會減小所要傳輸的資料集的大小。 資料還可以在流程中的某些重要點(例如,合併或選取節點之後)快取到資料庫的一個暫時表格中,從而進一步改善效能。
- 利用資料庫的效能和可調整性。 因為 DBMS 通常可以利用平行處理、功能更強大的硬體、更為複雜的磁碟儲存管理,以及由於指標的存在,所以效率會得到增加。
基於這些優點, Cloud Pak for Data 專門設計用來最大化每一個 SPSS Modeler 流程所產生的 SQL 數量,以便 Cloud Pak for Data只執行那些無法編譯為 SQL 的作業。 但是,由於可以使用標準 SQL (SQL-92) 表示的內容有限制,可能不支援某些作業。
如需目前受支援資料庫的詳細資料,請參閱 SPSS Modeler支援的資料來源。
提示:
- 執行流程時,後推至資料庫的節點旁邊會以小型的 SQL 圖示強調顯示。 在執行流程之後開始對流程進行編輯時,將會移除這些圖示,直到您下次執行流程為止。
圖 1. SQL 後推指示器 
- 如果您想要在執行流程 之前 查看哪些節點將回推,請按一下 SQL 預覽。 例如,這可讓您在執行流程之前先修改流程,以透過將非後推作業移至儘可能下游的位置來改善效能。
- 如果無法後推節點,則同樣不會後推流程中的所有後續節點(將在該節點停止後推)。 這可能會影響您想要在流程中組織節點順序的方式。
附註: 請記住下列 SQL 相關資訊:
- 由於 SQL 實作的微小差異,在資料庫中執行的流程在 Cloud Pak for Data中執行時可能會傳回稍微不同的結果。 由於類似的原因,這些差別還可能根據資料庫供應商不同而有所變化。 例如,根據字串比較和字串對照中區分大小寫的資料庫配置,使用 SQL 後推執行的 SPSS Modeler 流程可能會產生與沒有 SQL 後推執行的流程不同的結果。 有關配置資料庫的建議,請與資料庫管理者聯絡。 若要最大化與 Cloud Pak for Data的相容性,資料庫字串比較應該區分大小寫。
- 使用 Cloud Pak for Data 來產生 SQL 時, SQL 後推的結果可能在部分平台上不一致 (例如Linux)。 原因是浮點在不同平台上以不同方式進行處理。