宇宙仮面の
C# Programming

 
SQL 2008

新しいツール群

SQL Server 2005 ではツール群が一新されました。

1.目次

1.目次
2.目的
3.参考書
4.SQL2005の新しい機能とツール群
    4.1_Management_Studio
    4.2_SQL_Server_Profiler
    4.3_データベースエンジンチューニングアドバイザ
    4.4 Configuration_Manager
    4.5_SQL_Server_セキュリティ構成
    4.6 Visual Studio 2005
5.サンプルデータベース
6.データベースのメインテナンス
7.SQL_Server_2005_のデータ型
8.新しく追加された機能(T-SQL)
9.T−SQLとSQL.CLRの使い分け
10.新しいコマンド・T−SQL・ストアド

2.目的

SQL Server 2005では、ツール群が一新されています。

3.参考書

(1) Microsoft SQL Server 2005 Books Online
(2) Microsoft SQL Server 2005 Home Page
(3) AdventureWorks サンプルデータベースのダウンロード
(4) Microsoft TechNet : SQL Server 2005 自習書シリーズ

4.SQL2005の新しい機能とツール群

SQL Server 2005では、次のようにサービスやツール群が変更になっています。

Image

また、ツール群も大幅に変わっています。

SQL 2000 SQL 2005

Enterprise Manager

Management Studio
クエリ アナライザ Management Studioに統合されている。

分析マネージャ

Analysis ServiceManagement Studio→オブジェクトマネージャ→接続からAnalysis Serviceを追加
SQL Serverプロファイラ SQL Server プロファイラ
インデックスチューニングアドバイザ データベースエンジンチューニングアドバイザ
クライアントネットワークユーティリティ
サーバーネットワークユーティリティ
SQLサービスマネージャ
SQL Server Configuration Manager
- SQL Server セキュリティ構成

4.1 Management Studio

SQL2000 のエンタープライズマネージャ+クエリアナライザ+分析マネージャという感じの統合管理ツール。

Image

Management Studio では、テンプレートエクスプローラがあり、DBCCやSQL文のテンプレートが用意されており、簡単にコマンドを発行することができるようになっている。(下図)

Image

4.2 SQL Server Profiler

Management Studio→ツール→SQL Server プロファイラより起動する。

SQL文やストアドの実行、デッドロックの発生などのイベントの監視し、そのトレースデータをチューニングに利用する。

Image

 

4.3 データベースエンジンチューニングアドバイザ

Management Studio→ツール→ データベース エンジン チューニング アドバイザより起動する。

データベースの構造や Microsoft SQL Server の内部構造に関する専門的な知識がなくても、最適なデータベースのチューニングをアドバイスしてくれる。チューニングオプションで、インデックス、インデックス付きビュー、パーティション分割などを選択することができる。

Image

4.4 Configuration Manager

サービスの起動または停止を行うツール。起動は、スタートメニューから行う。

Image

Image

 

4.5 SQL Server セキュリティ構成

外部からのアクセス制限および機能の有効化/無効化を行うツール。インストール直後の状態ではほとんどの機能が無効に設定されており、外部からの接続も禁止されています。起動は、スタートメニューから行う。

Image
 

セキュリティ構成を実行すると、次のダイアログが表示され、「サービスと接続のセキュリティ構成」と「機能のセキュリティ構成」の2つから選択するようになっている。

Image

サービスと接続のセキュリティ構成では、SQL Server, Integration Server, SQL Server Browserの設定ができる。 

Image

機能のセキュリティ構成では、SQL Server, Analysis Services, Reporting Servicesの設定ができる。

Image

 

 

4.6 Visual Studio 2005

SQL Server 2005 をインストールすると、Visual Studio 2005が付いてくる。

Image

Analysis Services, Integration Services, Reporting Services のプロジェクトを開発することができるようになっている。

Image

5.サンプルデータベース

SQL2000では、Northwind, Pubsのサンプルデータベースがありましたが、SQL 2005ではAdventureWorksがサンプルデータベースとして提供されています。しかし、SQL2005を標準でインストールしただけでは、AdventureWorksはインストールされません。

インストールの方法

  • インストーラで追加インストールする。インストールの方法は、Books Online のAdventure Works→インストールを参照。
  • 参考書(3)よりAdventureWorksをダウンロードできます。

すでにインストールされている場合の再設定方法

  • スクリプトの再実行。
    インストールスクリプトは、次の場所にあります。
    %ProgramFiles%Microsoft SQL Server\90\Tools\Samples\AdventureWorks OLTP\instawdb.sql

6.データベースのメインテナンス

オブジェクトエクスプローラ→データベース→管理→メンテナンスプラン→メンテナンスプランウィザードで起動する。

Image

SQL Server Agent が起動されていないと、次のような「要求されたダイアログを表示できません」エラーが出ます。SQL Server Configuration Managerから、SQL Server Agentを起動してください。

Image

Image

次へを押す。

Image

名前を設定して、次へ。

Image

メンテナンスタスクを選択して次へ。

Image

実行順序を指定して次へ。

Image

データベースを選択するドロップダウンリストを押すと、次のようなダイアログが表示される。

Image

実行するデータベースを選択して、OKを押す。

Image

すぐに実行する場合は、次へ。スケジュールを指定する場合は、変更ボタンを押す。
下図は、スケジュール設定画面。

Image

レポートオプションを聞いてくるので、必要に応じて設定する。

Image

最後に、実行内容を最終確認してくる。問題なければ、完了ボタンを押すと実行を開始する。

Image

進行状況のダイアログが表示される。

Image

 

7.エラーとその対応

C#などの.NET CLRで作成するストアドや関数を実行しようとしても、標準設定ではが無効となっているので、「.NET Framework でのユーザー コードの実行は無効です。"clr enabled" 構成オプションを有効にしてください。」というエラーになります。この場合、SQL Server セキュリティ構成→機能のセキュリティ構成→データベースエンジン→CLR統合→CLR統合を有効にする必要があります。

Image

8.新しく追加された機能(T-SQL)

  1. 連番を振る
    SELECT ROW_NUMBER () OVER (ORDER BY City) AS 'No',* FROM Person.Address

    構文
      ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )
     
  2. XMLデータ型
    CREATE TABLE XMLTable(ID INT Identity PRIMARY KEY, xdata XML)
    
    INSERT INTO XMLTable(xdata)
    SELECT * FROM OPENROWSET (BULK 'C:\rss.xml', SINGLE_BLOB) AS TEMP
  3. TRY CATCH
     
    BEGIN TRY
        RAISERROR (N'エラーレベルが10以下ではキャッチされません。', 
                   10, -- Severity,
                   1);
    
        RAISERROR (N'This is message %s %d.', -- Message text.
                   11, -- Severity,
                   1, -- State,
                   N'number', -- First argument.
                   5); -- Second argument.
    END TRY
    BEGIN CATCH
        PRINT N'エラーレベルが10を超えるエラーが発生しました'
        SELECT
            ERROR_NUMBER() AS ErrorNumber,
            ERROR_SEVERITY() AS ErrorSeverity,
            ERROR_STATE() AS ErrorState,
            ERROR_PROCEDURE() AS ErrorProcedure,
            ERROR_LINE() AS ErrorLine,
            ERROR_MESSAGE() AS ErrorMessage
    END CATCH
    ただし、次の場合にはエラーがキャッチされないので注意が必要です。
    • 重大度が 10 以下の警告または情報メッセージ。
    • 重大度が 20 以上で、セッションに対する SQL Server データベース エンジン のタスク処理を終了させるエラー。重大度が 20 以上のエラーが発生し、データベース接続が切断されない場合、TRY...CATCH によってエラーが処理されます。
    • クライアントの割り込み要求や中断されたクライアント接続などのアテンション。
    • システム管理者による KILL ステートメントを使用したセッションの終了。

    CATCH ブロックのスコープ内では、次のシステム関数を使用してエラーに関する情報を取得できます。

    システム関数名 戻り値
    ERROR_NUMBER() エラーの番号
    ERROR_SEVERITY() 重大度
    ERROR_STATE() エラー状態番号
    ERROR_PROCEDURE() エラーが発生したストアド プロシージャまたはトリガの名前
    ERROR_LINE() エラーを発生させたルーチン内の行番号
    ERROR_MESSAGE() エラー メッセージ

 

9.T−SQLとSQL.CLRの使い分け

 

T-SQL SQL.CRL
基本的なデータ処理
(SELECTなど)
演算処理(文字列処理、ネットワークアクセス、レジストリ操作などなど)
ユーザ定義型を利用する場合
高いセキュリティが要求される処理

 

10.新しいコマンド・T−SQL・ストアド

 

SQL Server 2000 SQL Server 2005
DBCC SHOWCONTIG sys.dm_db_index_physical_stats
DBCC INDEXDEFRAG ALTER INDEX
DBCC DBREINDEX ALTER INDEX
sp_lock sys.dm_tran_locks
sp_dboptions ALTER DATABASE
SQL Mail データベース メールストアド