R コード プロファイル関数を使用してパフォーマンスを向上させる
適用対象: SQL Server 2016 (13.x) 以降のバージョン
この記事では、内部関数呼び出しに関する情報を取得するために R パッケージによって提供されるパフォーマンス ツールについて説明します。 この情報を使用して、コードのパフォーマンスを向上させることができます。
ヒント
この記事では、作業を開始するための基本的なリソースについて説明します。 専門家によるガイダンスとしては、Hadley Wickham 著 "Advanced R" の「Performance」の章をお勧めします。
RPROF の使用
rprof
は、基本パッケージ utils に入っている関数で、既定で読み込まれます。
一般に rprof
関数は、指定した間隔でファイルに呼び出し履歴を記述することで機能します。 すると、summaryRprof
関数を使用して出力ファイルを処理することができます。 rprof
の利点の 1 つは、サンプリングを実行することで、監視によるパフォーマンスの負荷を軽減することです。
コードで 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 パッケージの詳細については、「The R Utils Package (R Utils パッケージ)」を参照してください。
- R のプログラミングの詳細については、「"Advanced R" by Hadley Wickham (Hadley Wickham による "Advanced R")」を参照してください。