ARITHABORTHをON/OFFに設定し、DBCC DROPCLEANBUFFERSとDBCC FREEPROCCACHEを使用してバッファをクリアすることを含む、同様の質問に対する回答には既に従っています。また、パラメータをローカル変数に変換しようとしました。しかし、まだパフォーマンスの問題があります。スクリーンショットで見られるようにSPROC .NETから遅いがSSMSから5倍速い
、SSMSから同じ手順を約625ミリ秒かかりますが、.NETクライアントから、約3.5秒かかります。
興味深いのは、データの読み取りも異なることです。 "バイナリ"列には.NETクライアント用のデータがありますが、SSMS用のデータはありませんが、私は専門家ではなく、その理由を知りません。
ご協力いただければ幸いです。
テクノロジー:SQLサーバー2016標準
基礎テーブルは、プロシージャで取り込まれたパラメータは、通常は非常に似てい 約3万行が含まれています。
もう一度、ご協力いただきありがとうございます。
SSMSで使用しているのと同じDBにドットネットクライアントが接続していることを確認してください。 – GuidoG
プロファイラを使用してsqlコマンドを取得します。 SSMSでテストしたコマンドと比較してください。 – GuidoG
@GuidoGはい、もちろん同じDBを使用しています。取得したプロファイルトレースは既に添付されています。私はまた、両方のSPの呼び出しが同じクエリプランを使用することを確認しました –