SQL Server

【SQL Server】データのバックアップ・リストア

■ バックアップファイルを生成するには * 以下のSQL文を実行する サンプル データベース「SampleDB」を「C:\temp\backupDb.bck」に保存する場合 /* BACKUP DATABASE [対象データベース] TO DISK = 'バックアップファイル保存先' WITH INIT; */ BACKUP DATABA…

【SQL Server】SQL Server でカンマ区切り のデータの扱う

【1】カンマ区切りデータを分ける * そんなメソッドないので、ストアドで独自実装 1)サンプル CREATE FUNCTION Split ( @inputeValue VARCHAR(MAX), @delimiter CHAR(1) ) RETURNS @returnTable TABLE(SplitedValue VARCHAR(MAX)) BEGIN -- 入力値の最大…

【SQL Server】親子階層を表現する

方法1:WITHを使用する * SQL Server2005以降で使用可能 サンプル * 以下の記事を参照のこと WITH 句 ~共通テーブル式~ http://blogs.yahoo.co.jp/dk521123/29639816.html 方法2:WITHおよびHierarchyID データ型を使用する * SQL Server2008以降で使用可…

【SQL】【SQL Server】SQL Server の断片化

■ 知識編 断片化とは? http://blogs.msdn.com/b/jpsql/archive/2011/10/17/10224501.aspx より、一般的に、断片化とは、以下の状況のいずれかである。 ~~~ * 論理スキャンフラグメンテーション (logical scan fragmentation) の値が低い状況 * 平均ペー…

【SQL Server】SQL Server の統計情報

■ はじめに 統計情報についての説明などは、以下の記事を参照のこと。 http://blogs.yahoo.co.jp/dk521123/30561702.html ■ 手動で統計情報更新 テーブル個別 UPDATE STATISTICS 【テーブル名】 テーブル個別(全行スキャン) UPDATE STATISTICS 【テーブル名…

【SQL Server】上位X件のレコードを取得する ~Top句~

Top句 * 先頭行を指定して抽出する * 変数が使えるようになるのは、SQL Server 2005から。 ただし、括弧が必要である。 SELECT TOP(@変数) * FROM ... サンプル DECLARE @topNum AS int = 10; SELECT TOP(@topNum) * FROM TestTable 使用上の注意 * 「TOP(X)…

【SQL Server】SQL Server の「全角・半角」「大文字・小文字」「平仮名・カタカナ」の扱い

SQL Server の全角・半角の扱い カタカナの全角・半角 * デフォルトだと区別しない * 「ギ」と「ギ」も同じ扱いで区別しない * 「ギ」と「キ」は異なるので、以下【サンプル】の「id = 01」は引っかからない サンプル SELECT * FROM TestTable WHERE Name LIK…

【SQL Server】実行プランの削除 ~ DBCC FREEPROCCACHE ~

全ての実行プランを削除 構文 DBCC FREEPROCCACHE WITH NO_INFOMSGS; 補足説明 * WITH NO_INFOMSGS 句を指定して、情報メッセージが表示されないようにする 特定の実行プランを削除 構文 SELECT plan_handle, st.text FROM sys.dm_exec_cached_plans CROSS A…

【SQL】データ型/文字列編 (char型 / varchar型 / nvarchar型)

char 型 / varchar 型 / nvarchar 型 char 型 * 固定長 * 最大長は8000バイト デメリット * 列の長さより短い値を格納した場合、足りない分まで空白が埋め込まれる (バグの原因になる。Trim()などで回避。) 例:char(10) と定義され、"music" というデータ…

【SQL Server】bcpコマンド

概要 * bcp (Bulk Copy Program):一括コピープログラム * SQL Serverとデータファイルの双方向でのデータのやり取りが可能にする 使いどころ * データのインポート/エクスポートを行う場合 * データベースの内容をCSV化する場合 * SQL Server間のデータのコ…

【SQL Server】クエリヒント / テーブルヒント

はじめに まずは、以下の動画をみた方がいい。 http://technet.microsoft.com/ja-jp/sql_5mins16-2.aspx 概要 ■通常は... 最適と思われる実行プランを、オプティマイザが選んでデータアクセスしてくれる 【問題点】 * オプティマイザは、必ずしも完璧じゃな…

【SQL Server】【Tool】SQL Server の調査ツール [4] ~ RMLユーティリティ/SQLIOSIM の利用 ~

RMLユーティリティ * パフォーマンス分析&検証ツール 参考文献 http://support.microsoft.com/kb/944837/ja ダウンロード http://jp.downv.com/install-SQL-Server%82%CCRML%83%86%81%5B%83e%83B%83%8A%83e%83B-10386038.htm SQLIOSIM * ディスクI/Oの動作を…

【SQL Server】Microsoft SQL Server Management Studio について

ダウンロード先 * Microsoft SQL Server Management Studio Express * 「SQLManagementStudio_x64_JPN.exe」は、64ビット用 * 「SQLManagementStudio_x86_JPN.exe」は、32ビット用 http://www.microsoft.com/ja-jp/download/details.aspx?id=22985 参考文献 …

【SQL Server】SQL Serverのインデックスあれこれ

■ はじめに https://dk521123.hatenablog.com/entry/2010/04/01/175501 でやったインデックスを行ったが、SQL Server に絞って書く。 目次 【1】SQL Serverのインデックス構造 1)クラスタ化インデックス 2)非クラスタ化インデックス 【2】クラスタ化イ…

【SQL Server】Visio2010を使って、SQL Server の DB から ER図を作成する

手順 [1] Visioを起動したら、[ファイル]-[新規作成]-[ソフトウェアとデータベース]-[データベースモデル図]を選択 [2] [データベース]-[リバースエンジニアリング]を選択 ダウンロード * 評価版であれば、60日間限定であるが、ユーザ登録すれば無料で使える…

【SQL Server】SQL Server の データベース内部構成

SQL Server データベースは、2つのファイルで構成されている。 [1] データ ファイル(.mdf) [2] トランザクション ログ ファイル(.ldf) [1] データ ファイル * 以下の情報が格納されている。 + テーブル + データ + インデックス + ビュー + ストアドプロ…

【SQL Server】データ パーティション

■ はじめに パーティション (partition) について、メモる。 ■ データ パーティション * データの範囲によって格納場所(パーティション) を分割することができる機能 * Oracle の「レンジ パーティション」に相当する機能 * SQL Server 2005から追加された…

【SQL Server】お勧めの資料

参考資料 自習室シリーズ SQL Server 2008 http://www.microsoft.com/ja-jp/sqlserver/2008/self-learning/default.aspx SQL Server 2008 R2 http://www.microsoft.com/ja-jp/sqlserver/2008/r2/technology/self-learning.aspx Troubleshooting SQL Server: …

【SQL Server】【Tool】SQL Server の調査ツール [3] ~ 実行プランの分析 ~

概要 * SQLが正しい実行プラン(実行計画)になっているか確認する事が重要で、SQL Serverでの実行プランの確認の仕方を記す。 * 実行プランについては、以下を参照のこと。 http://blogs.yahoo.co.jp/dk521123/28850809.html 実行プランの取得方法 やり方・…

【SQL Server】【Tool】SQL Server の調査ツール [0] ~ 概要 ~

概要 やみくもにパフォーマンス改善を行うのではなく、ボトルネックとなっている箇所を調べ、その箇所に対して改善することが重要である。 SQL Serverにおいて、その「ボトルネックとなっている箇所を調べ」るためのツールについて調べたことを以下に記す。 …

【SQL Server】【Tool】SQL Server の調査ツール [2] ~ SQLDiag/PSSDIAG/SQL Nexus ツールの利用 ~

データ収集ユーティリティ SQLDiag ツール 説明・動画 http://technet.microsoft.com/ja-jp/video/sql_5mins18 * SQL Serverの標準管理ツール * SQL Serverの現在の状態をなどを収集できる [診断情報の種類] + Windowsパフォーマンス・ログ + Windowsイベン…

【SQL】【SQL Server】SQL Server のパフォーマンスをあげることを考える

全般 http://technet.microsoft.com/ja-jp/ff606481 より、初めに以下を試すといい。 [1-1] インデックスの設定 * どのようなインデックスが必要かを自動で判定してくれるツールが、データーベースエンジンチューニングアドバイザを参考にするといい http://…

【SQL Server】ストアド ~ 基本編 / カーソル ~

【1】カーソル * クエリの結果集合を一時的に蓄えておくための 仮想的な作業領域のこと 【2】メリット / デメリット 1)メリット * カーソルを使用すると、SELECTの結果に対して、 1行ごとに繰り返し処理を行うことができる (分かりやすい!) http://www…

【SQL Server】ストアド ~ 入門編 ~

【1】構文 CREATE PROCEDURE プロシージャ名 [@パラメータ データ型, ・・・] AS SQL文 【2】SQL Sever Management Studioで確認する * Management Studio上の「オブジェクトエクスプローラ」より [プログラミング]-[ストアドプロシージャ]で 登録したスト…

【SQL Server】【Tool】SQL Server の調査ツール [1] ~ SQL Server Profiler(SQLプロファイラ)の利用 ~

SQLプロファイラ http://msdn.microsoft.com/ja-jp/library/ms979207.aspx SQL ステートメントとストアド プロシージャに対し、デバッグ、トラブルシューティング、監視、計測が可能となる。 * 実行したクエリの実行状態を把握 * 実行したクエリのロックの取…

【SQL】【SQL Server】暗号化 (まとめ)

まとめ http://blogs.yahoo.co.jp/dk521123/35411224.html の機能のまとめを以下に示す USE [testDataBase]; GO /* 対称キー削除 */ IF EXISTS (SELECT * FROM sys.symmetric_keys WHERE [name] = 'testKeyName01') DROP SYMMETRIC KEY testKeyName01 REMOVE…

【SQL】【SQL Server】暗号化

基本編 DBに対して暗号化有効 http://msdn.microsoft.com/ja-jp/library/bb630389.aspx 構文 ALTER DATABASE 【データベース名】 SET ENCRYPTION ON; 例 USE testDataBase; GO ALTER DATABASE testDataBaseSET ENCRYPTION ON; GO マスタキーの作成 http://ms…

【SQL Server】データ型変換

型の変換を行う Convert() 構文 * value を type 型に変換 CONVERT(type, value) サンプル1:日付の比較 SELECT * FROM Schedule WHERE CONVERT(DATE, date) = CONVERT(DATE,‘2010/09/02') サンプル2:年月を表示 SELECT CONVERT(CHAR(7), date, 111) AS Yea…

【SQL】【SQL Server】SQL Server Expressのインストール

■ SQL Server 2008 Express 注意点 * 若干、詰まったところをピックアップして、手順を残しておく(基本的には、以下を参照のこと) * 基本的には、以下に書いてあるが、今回は、「機能選択」において、全ての機能を選択しました http://www.dbonline.jp/sql…

【SQL Server】ストアド ~ サンプル編 ~

【1】サンプル 例1 USE [Database Name] GO SET ANSI NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[procedure.Name] @PROCEDURE_ID INT AS BEGIN SET NOCOUNT ON; IF @PROCEDURE_ID > 0 SELECT * FROM tableName1 WHERE ID = @PROCED…