3
BULK INSERTステートメントのパフォーマンスをどのように調査しますか?
私は主にEntity Framework ORMを使用する.NET開発者です。ただし、ORMの使用に失敗したくないので、データレイヤー(データベース)内で何が起こるかを理解しようとしています。基本的に、開発中にプロファイラを起動し、クエリの観点からコードの一部が生成するものを確認します。 非常に複雑なもの(ORMが注意深く書かれていなければ、かなり単純なLINQステートメントからでもひどいクエリを生成する可能性があります)や重いもの(持続時間、CPU、ページの読み取り)を見つけた場合は、それをSSMSで受け取り、その実行計画を確認します。 私のデータベースの知識レベルでは問題なく動作します。ただし、BULK INSERTはSHOWPLANを生成しないように見えるため、特別な生物のようです。 非常に単純な例を示します。 テーブル定義 CREATE TABLE dbo.ImportingSystemFileLoadInfo ( ImportingSystemFileLoadInfoId INT NOT NULL IDENTITY(1, 1) CONSTRAINT PK_ImportingSystemFileLoadInfo PRIMARY KEY CLUSTERED, EnvironmentId INT NOT NULL CONSTRAINT FK_ImportingSystemFileLoadInfo REFERENCES dbo.Environment, ImportingSystemId INT NOT NULL CONSTRAINT FK_ImportingSystemFileLoadInfo_ImportingSystem REFERENCES dbo.ImportingSystem, FileName NVARCHAR(64) NOT NULL, FileImportTime DATETIME2 NOT NULL, CONSTRAINT UQ_ImportingSystemImportInfo_EnvXIs_TableName UNIQUE …