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

SqlServer

ざっくりRDBとNoSQLの選定基準(NoSQL製品の選び方)

DB 選定でよく出るのが「RDB でいくか、NoSQL も使うか」。さらに NoSQL にするなら MongoDB / Redis / DynamoDB など、製品も分かれる。 この記事では、RDB と NoSQL の選 ...

続きを読む

ざっくりDB製品とGUIの対応表

DB を触るとき、コマンドだけでも動くが、現場では GUI ツール(画面でテーブルを見たり、クエリを打ったりするもの)を使うことが多い。 この記事では、よく使う RDB 製品と、定番 GUI の対応をざっくり表にする。細 ...

続きを読む

ざっくりDB製品の比較と選定のポイント

システム設計でよく出るのが「DB はどれにするか」。SQL Server / PostgreSQL / MySQL / Oracle、さらにクラウドのマネージド(RDS / Azure SQL など)まで、候補が多い。 ...

続きを読む

Entity Framework Core DbUpdateException の切り分け

EF Core で SaveChanges / SaveChangesAsync したときに出る DbUpdateException。内側を見ないと原因が分からないことが多い。 この記事では、よくある中身と切り分け手順を ...

続きを読む

SQL Server デッドロックの見方と対策

SQL Server のデッドロックは、「お互いのロックを奪い合って進める」状態。エラー 1205 で一方が犠牲者(victim)になる。 この記事では、見方とざっくりした対策を逆引きできるようにまとめる。 先に結論 症 ...

続きを読む

SQL Server 実行計画の見方 インデックスが効かないとき

「インデックスを付けたのに遅い」「実行計画を見ても何を確認すればいいか分からない」は SQL Server あるある。 この記事では、実行計画の見方とインデックスが使われないときの切り分けをざっくり逆引きする。 先に結論 ...

続きを読む

SQL Server「タイムアウト期限が過ぎました」原因と対策

ADO.NET / EF から SQL Server を叩いていると、「タイムアウト期限が過ぎました」系の例外が出る。接続の待ち切れと、コマンド実行の待ち切れは別物なので、まずどちらなのかを分ける。 先に結論 切り分けの ...

続きを読む

SQL Server ブロッキングの見方(誰が止めているか)

「クエリが返ってこない」「タイムアウトばかり」のとき、実体がブロッキング(誰かがロックを持ったまま、別セッションが待たされている)であることが多い。デッドロックと違い、自動解消されず待ち続ける。 先に結論 ざっくり見る手 ...

続きを読む

SQL Server インデックス再構築 / 再構成の使い分け

断片化が進んだ索引に対して、再構築(リビルド)と再構成(リオーガナイズ)のどちらを使うかで、負荷・ロック・効果の出方が違う。数値の目安は環境依存なので、「どちらが軽いか/何が付随するか」で選ぶのが実務的。 先に結論 使い ...

続きを読む

SQL Server NOLOCK を使いたくなるとき・使わない方がいいとき

読み取りがロック待ちで止まるとき、ヒントでロックを回避したくなる。いわゆる NOLOCK(読み取り未コミット相当)だ。速く見える一方で、消えたり二重に見えたりする読み取りが混ざりうる。 先に結論 何が起きうるか 使うなら ...

続きを読む