セージ の メモ書き

メモこそ命の恩人だ

DB-SQL Server

SQL Server - コネクション/セッション

コネクション セッション 関連情報 @@SPID SUSER_ID()/SUSER_NAME() コネクション sys.dm_exec_connections (Transact-SQL) - SQL Server | Microsoft Learn DB と DB使用アプリの接続情報。 sys.dm_exec_connections でコネクションを確認できる。 以下、…

SQL Server - 並列クエリ (パラレルクエリ)

並列クエリ 並列クエリの設定 並列処理の閾値 並列処理のコア数 並列クエリの確認 実行プランの表示 コストの確認 補足 並列クエリにならない理由 CPU負荷の疑似的な増加 並列クエリ クエリ処理アーキテクチャ ガイド - SQL Server | Microsoft Learn 複数コ…

SQL Server - 同時接続数/接続プール

サーバー側の設定 注意事項 SSMS の使用 コマンドの使用 クライアント側の設定(接続プール) ADO.NET JDBC ドライバー サーバー側の設定 user connections サーバー構成オプションの構成 - SQL Server | Microsoft Learn SSMS or コマンドで変更できる。 0 …

SQL Server - 行ロック

事前知識 更新ロック 行ロック 更新ロック (UPDLOCK) 排他ロック (XLOCK) ロックタイムアウト ロック状態の確認 ロック状態の解除 注意:ヒープテーブル 事前知識 更新ロック 共有ロック 更新ロック 排他ロック 共有ロック 〇 〇 × 更新ロック 〇 × × 排他ロ…

SQL Server - トランザクションログ

トランザクションログ 仮想ログ ファイル (VLF) sys.dm_db_log_info sys.dm_db_log_stats トランザクションログのサイズ確認 sys.dm_db_log_space_usage sys.database_files トランザクションログの圧縮 圧縮条件1 圧縮条件2 DBCC SHRINKFILE sys.dm_datab…

SQL Server - T-SQL オートコミット/トランザクション

オートコミット(自動コミット) トランザクション 明示的なトランザクション 暗黙的なトランザクション オートコミット(自動コミット) 既定は "有効" で動作する。 INSERT・UPDATE・DELETE を実行すると、即時にコミットされる。 以下のテーブルで試す。 …

SQL Server - BULK INSERT

BULK INSERT Azure SQL Database での使用方法 補足 バイナリデータを登録 トランザクション指定のINSERT BULK INSERT BULK INSERT (Transact-SQL) - SQL Server | Microsoft Learn Bulk:大量 CSV 形式などのファイルデータを一括登録できる。 登録速度は、…

SQL Server - ビュー/インデックス付きビュー

ビュー ビューの作成 ビューの更新 インデックス付きビュー インデックス付きビューの作成 実験 検索速度:ビュー vs インデックス付きビュー ビュー ビュー |Microsoft Learn - SQL Server | Microsoft Learn 仮想的なテーブル。 実テーブルが用意されるわ…

SQL Server - ラッチ

ラッチ (Latch) ラッチモード ラッチ競合 確認用クエリ sys.dm_os_wait_stats 実験 排他ラッチの確認 docs.microsoft.com ラッチ (Latch) Latch:閂(かんぬき) ページの整合性を保証するための機能。 ページアクセスの際にラッチが動作する。 SQL Server …

SQL Server - ヒント句によるインデックスの指定

ヒント句 - インデックス 実験 ヒント句で実行プランが変わるか? ヒント句 - インデックス クエリ ヒント (Transact-SQL) - SQL Server | Microsoft Docs オプティマイザーに対し、使用するインデックスを指定できる。 SELECT・UPDATE・DELETE の場合に指定…

SQL Server - パーティション

パーティション パーティションの作成方法 ファイルグループの作成 パーティション関数の作成 パーティション構成の作成 物理的にパーティション分割 論理的にパーティション分割 テーブルの作成 パーティション削除 パーティション構成の削除 パーティショ…

SQL Server - 実行プラン(実行計画)/統計情報

実行プラン アクセス方法 表示方法 (GUI) 表示方法 (TEXT) 表示方法 (XML) 統計情報 統計情報の自動作成/自動更新 統計情報の手動作成/手動更新 統計情報の表示 実験 統計情報のデータ分布を確認 実行プランの確認(index seek/index scan) 複合主キーで…

SQL Server - 断片化/再構築/再編成

断片化 データページの断片化 インデックスページの断片化 確認用クエリ 断片化率・ページ密度 断片化の対処 再編成 (REORGANIZE) 再構築 (REBUILD) 再編成の再構築の違い 50-50ページ分割 データの追加 データ変更 Q&A ページ密度とは違う? 断片化 インデ…

SQL Server - クラスター化/非クラスター化インデックス

概要 インデックス ( Index : 索引 ) クラスター化インデックス(主索引) 非クラスター化インデックス(副次索引、二次索引) インデックスの自動付与 確認用クエリ インデックスの一覧情報 インデックスの階層情報(レコード数、断片化率) ページごとのイ…

SQL Server - 先行読み取り (Read Ahead)

先行読み取り (Read Ahead) 先行読み取りしたページ数の確認 先行読み取り (Read Ahead) ページの読み取り - SQL Server | Microsoft Docs クエリの実行前に、予想したページをバッファキャッシュに取得する機能。 連続したページを読み取る。(最大64ページ…

SQL Server - ダーティページ/チェックポイント

ダーティページ (Dirty page) チェックポイント 自動チェックポイント 間接チェックポイント 手動チェックポイント 内部チェックポイント Q&A Q.ダーティページはバッファキャッシュの削除コマンドで残る? 自動チェックポイントのタイミングは? ダーティペ…

SQL Server - プランキャッシュ(プロシージャキャッシュ)

プランキャッシュ(プロシージャキャッシュ) キャッシュの削除 キャッシュ済み実行プランの確認 sys.dm_exec_sql_text sys.dm_exec_cached_plans sys.dm_exec_query_stats プランキャッシュ(プロシージャキャッシュ) 実行プランのキャッシュ。 キャッシュ…

SQL Server - バッファキャッシュ(バッファプール)

バッファキャッシュ(バッファプール) キャッシュの削除 キャッシュのページ情報を確認 各ページ情報(基本) ページの集計情報 キャッシュの管理情報 拡張バッファキャッシュ Q&A Q. バッファキャッシュの最大サイズは? Q. 特定ページを意図的にキャッシ…

SQL Server - クエリ処理時間の計測

準備 システム日時の取得 日時データの差分 キャッシュの削除 処理時間の計測 ステートメントごとの処理時間 複数ステートメントの処理時間 複数ステートメントの処理時間(複数結果) 準備 システム日時の取得 SYSDATETIME (Transact-SQL) - SQL Server | M…

SQL Server - バイナリデータの 生成/登録/表示

バイナリデータの生成 バイナリデータの登録 バイナリデータの表示 補足 バイナリデータ (Binary : 2進数) 使用 DDL バイナリデータの生成 ループさせてデータを連結させる。 ループ数によりデータサイズを調整できる。 -- 0x の初期化がポイント DECLARE @D…

SQL Server - T-SQL 変数/制御文

変数 変数の宣言 値の設定 値の設定 (SELECT 結果を取得) 日時型の変数 テーブル型の変数 制御文 IF...ELSE WHILE 変数 docs.microsoft.com 変数の宣言 DECLARE @local_variable (Transact-SQL) - SQL Server | Microsoft Learn DECLARE @変数名 データ型 = …

SQL Server - DBファイルの圧縮/拡張

ファイルサイズの確認 sys.database_files 圧縮 DBCC SHRINKFILE AUTO_SHRINK (自動圧縮) 拡張 手動拡張 ファイルサイズの確認 sys.database_files sys.database_files (Transact-SQL) - SQL Server | Microsoft Learn USE DB名; SELECT * FROM sys.database…

SQL Server - ページ/エクステント

概要 ファイル ページ (Page) ページの種類(メタデータ以外) ページの種類(メタデータ) ページの構造 ページ密度って? エクステント (Extent:領域) エクステントの動作タイプ 確認用クエリ ページ内容のダンプ レコードごとのページID インデックスや…

SQL Server - 可変長のデータサイズ

可変長のデータサイズ ページダンプして確認 可変データのみ カラム数:1、最大長:1 カラム数:1、最大長:2 カラム数:2、最大長:1 カラム数:2、最大長:2 カラム数:3、最大長:1 カラム数:3、最大長:3 カラム数:10、最大長:1 カラム数:30、最大長…

SQL Server - ユーザー作成

ユーザー CREATE LOGIN CREATE USER サンプル ユーザー https://www.fenet.jp/dotnet/column/tool/1635/ http://www.sql-master.net/articles/SQL48.html ユーザー名 内容 SQL ログインユーザー インスタンスにログインするユーザー CREATE LOGIN データベー…

SSMS 最大表示桁

SSMS 最大表示桁 補足:使用テーブル SSMS 最大表示桁 表示モードならどこまでも表示可能。 編集モードで表示可能な桁数がある。 43680 桁未満なら表示可。 43680 桁以上なら表示不可。 SQL Server 2019 Express の結果である。 <表示モード> <編集モード> -…

SQL Server 互換性レベル

互換性レベル 注意事項 互換性レベル ALTER DATABASE 互換性レベル (Transact-SQL) - SQL Server | Microsoft Docs 互換性レベルとは、DB エンジンのバージョン情報である。 SQL Server のバージョン情報ではない。エンジンの情報である。 SQL Server 2008 …

SQL Server 2019 Express インストール

SQL Server 2019 Express インストール要件 手動インストール SQL Server のインストールに伴いインストールされたソフト SQL Server Management Studio (SSMS) SQL Server 2019 Express インストール要件 SQL Server 2019:ハードウェアとソフトウェアの要件…

SQL Server Standard ライセンス

ライセンスモデル コアライセンス ( = コアベースモデル) サーバーライセンス ( = サーバー/CALモデル) 価格 SQL Server 2019 Standard SQL Server 2017 Standard 豆知識 Intel Core シリーズ コア数 ライセンスモデル 下記の2通りがある。ライセンスの割…

SQL Server - ステートメント/バッチ/GO(区切り記号)

ステートメント バッチ GO 実験 実行プランへのキャッシュ ステートメント DBMS へ指示可能な最小単位の命令である。 セミコロン ";" がステートメントの終端記号。 改行を挿入し、複数行のステートメントにしてもOK。 セミコロンは、将来のバージョンで必須…