使用 R 分析函式來改善效能
適用於: SQL Server 2016 (13.x) 和更新版本
此文章描述由 R 套件所提供的效能工具,以取得內部函式呼叫的相關資訊。 您可以使用此資訊來改善程式碼效能。
提示
本文提供您開始使用時的基本資源。 如需專家指導,建議您閱讀由 Hadley Wickham 所著 "Advanced R" 中的 Performance 一節。
使用 RPROF
rprof
是包含在基底套件 utils 中的函式,預設會載入此函式。
一般而言,rprof
函式的運作方式,是在指定的時間間隔將呼叫堆疊寫出至檔案。 然後,您可以使用 summaryRprof
函式來處理輸出檔案。 rprof
的其中一個優點,在於它會執行取樣,因此降低監視的效能負擔。
若要在您的程式碼中使用 R 程式碼剖析,您必須呼叫此函式並指定其參數,包含將寫入之記錄檔的位置名稱。 程式碼剖析可在您的程式碼中開啟或關閉。 下列語法說明基本用法:
# Specify profiling output file.
varOutputFile <- "C:/TEMP/run001.log")
Rprof(varOutputFile)
# Turn off profiling
Rprof(NULL)
# Restart profiling
Rprof(append=TRUE)
注意
若要使用此函式,必須在執行程式碼的電腦上安裝 Windows Perl。 因此,建議您在 R 環境中於開發期間對程式碼進行剖析,然後將已偵錯的程式碼部署到 SQL Server。
R 系統函式
R 語言包含許多針對傳回系統變數內容的基底套件函式。 例如,做為您 R 程式碼的一部分,您可能會使用 Sys.timezone
來取得目前時區,或是使用 Sys.Time
來從 R 取得系統時間。
若要取得個別 R 系統函式的相關資訊,請從 R 命令提示字元輸入函式名稱做為 R help()
函式的引數。
help("Sys.time")
在 R 中進行偵錯與程式碼剖析
Microsoft R Open 的文件 (預設會安裝) 包含開發 R 語言延伸模組的手冊,其中會詳細討論分析與偵錯。
後續步驟
- 如需在 SQL Server 中將 R 指令碼最佳化的詳細資訊,請參閱適用於 R 的效能微調及資料最佳化。
- 如需 SQL Server 上效能微調的更完整資訊,請參閱 SQL Server 資料庫引擎和 Azure SQL Database 的效能中心。
- 如需 utils 套件的詳細資訊,請參閱 R Utils 套件 \(英文\)。
- 如需 R 程式設計的深入討論,請參閱 Hadley Wickham 所撰寫的<進階 R> \(英文\)。