セージ の メモ書き

メモこそ命の恩人だ

DB

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 を実行すると、即時にコミットされる。 以下のテーブルで試す。 …

DB - 行/ロウ/レコード

データベースはレコード・フィールドではなく、行・列と表現すべき - ぱと隊長日誌 テーブル VS ファイル、行 VS レコード、列 VS フィールド 行は、ロウ(row) である。 行は、レコード(record) でない。 レコードは、アプリ上の概念。らしい。。。 以下に、…

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、最大長…

PostgreSQL - セットアップ

PostgreSQL セットアップ pgAdmin4 起動 DBの確認 テーブル作成 SQL 実行 PostgreSQL https://www.postgresql.jp/ OSS の RDBMS。 ライセンス:BSD ランキング:4位 (2022/6時点) https://db-engines.com/en/ranking 読み方 ポストグレスキューエル 通称:ポ…

SQL - Check制約

Check制約 実験用テーブル 制約追加:例1 制約追加:例2 試験問題 Check制約 https://docs.microsoft.com/ja-jp/sql/relational-databases/tables/create-check-constraints カラムの特性に合わせた制約を設定できる。 例:特定の文字のみを登録可能にする…

SQL - CASE

CASE 実験用テーブル WHEN 単一指定 WHEN 複数指定 CASE https://docs.microsoft.com/ja-jp/sql/t-sql/language-elements/case-transact-sql SQLの結果に条件分岐を使用できる。 ~ならば"○"、~ならば"×" みたいな結果を表示できる。 WHEN の後に"条件"を指…

SQL - ORDER BY

ORDER BY 実験用テーブル 単一カラム指定 複数カラム指定 ORDER BY https://docs.microsoft.com/ja-jp/sql/t-sql/queries/select-order-by-clause-transact-sql 指定カラムをソートできる。複数カラムを指定可。 カラム名 or カラムのインデックス を指定す…

SQL - 結合操作

実験用テーブル 直積 INNER JOIN LEFT OUTERJOIN NATURAL JOIN 試験問題:LEFT OUTER JOIN 実験用テーブル USE SampleDB /* テーブル削除 */ IF ObJECt_ID('[SampleTable1]') IS NOT NULL DROP TABLE [SampleTable1]; IF ObJECt_ID('[SampleTable2]') IS NOT…