• システム開発に関わる内容をざっくりと書いていく

SqlServer

SQL Server パラメータスニッフィングの症状と対処

同じ手続き・同じパラメータ化文なのに、ある値では速い・別の値では極端に遅い——典型がパラメータスニッフィング。初回コンパイル時の値向け計画が、別の分布の呼び出しに再利用される。 先に結論 切り分け よく使う対処の型 関連 ...

続きを読む

SQL Server 統計情報更新のタイミング

オプティマイザは統計を見て行数を推定する。古い/偏った統計のままだと、スキャン過多や悪い結合順になり、突然遅くなる。自動更新に任せきりか、メンテジョブで触るかが運用の分岐点。 先に結論 いつ更新を検討するか 運用の型 関 ...

続きを読む

EF Core で発行SQLを確認する方法

EF Core 利用中に「どんな文が飛んでいるか」が見えないと、N+1 や想定外の結合に気づけない。ログ/インターセプタ/デバッガ出力など、環境に合わせた確認手段を持っておく。 先に結論 よく使う手段 見るときのポイント ...

続きを読む

EF Core N+1 の見つけ方と対策

一覧画面が遅い、ログに同じような照会が何百回も出る——典型が N+1。親を1回取ったあと、関連を行ごとに追加で取りに行くパターンだ。EF Core では Include 忘れや遅延ロード、ループ内の別クエリが原因になりや ...

続きを読む

EF Core マイグレーション失敗時の切り分け

dotnet ef database update が落ちる、起動時に自動適用が例外で止まる——マイグレーション失敗は「モデル差分」「履歴表」「既に存在するオブジェクト」が絡みやすい。慌てて手動でオブジェクトをいじる前に ...

続きを読む

接続文字列 TrustServerCertificate でハマるポイント

SQL Server へ接続するとき、証明書エラーで止まって TrustServerCertificate=True を付けたくなる場面がある。開発では楽だが、意味を理解せず本番に持ち込むと「暗号化しているつもりが検証し ...

続きを読む

SqlServer SqlDatabase 発行されたクエリを確認するクエリ

例1: 日付部分は任意 例2: リングバッファの作成 取得 一まとめVer

続きを読む

処理が遅いクエリ(SQL)を検出

統計情報から抽出 ・平均処理がかかっている ・累積処理時間がかかっている

続きを読む

結合種類(JoinType)

Nested Loop(ネステッドループ結合): 外側テーブル1行ごとに内側テーブルを1周ループしながら結合する方法。外側テーブルの行数が少なく、内側テーブルにインデックスがある場合に処理が高速になる。 Merge Jo ...

続きを読む

クエリチューニング手順

1、クエリに原因があるのか切り分け: 多くの場合は、クエリに原因があるところまで断定されていないので、本当にクエリに問題があるのか確認する。プログラム部分の問題かもしれないし。 2、現状の結果と変わらないクエリでインデッ ...

続きを読む