2005年10月28日

SQL Server ノート 目次

■ 第1部 SQL Server の概要 ■

1章 コンポーネント

  1. ネットワークライブラリ
  2. メモリ管理
  3. 環境設定オプション
  4. クライアントアプリケーション
  5. データベース API
  6. SQL Server と他コンポーネントとの統合

2章 SQL Server のサービス

  1. SQL Server 2000 のサービス (Windows NT/2000 以降)
  2. インストール時のサービスアカウント設定
  3. 予期しないサービス停止時の自動再起動
  4. Windows 98 でのコンポーネント
  5. サービスの状態

3章 データベースオブジェクト

  1. データベースオブジェクト
  2. システムテーブル
  3. 完全修飾名
  4. ビュー
  5. ストアドプロシージャ
  6. ユーザー定義関数
  7. トリガ
  8. データベースオブジェクトの変更オプション

4章 メタデータ

  1. メタデータの取得

5章 各種ツール

  1. Enterprise Manager の機能
  2. SQL-DMO (SQL 分散管理オブジェクト)
  3. クエリアナライザの機能
  4. クエリアナライザの特徴
  5. SQL Server 2000 コマンドラインツール
  6. Osql

6章 アーキテクチャ

  1. データファイルの種類
  2. ファイルグループ
  3. ページとエクステント
  4. 特殊ページ
  5. トランザクションログの記憶域
  6. アーキテクチャ補足
  7. SQL Server 6.5 までのデータベース構造
■ 第2部 SQL Server のインストール ■

7章 インストール要件

  1. インストール要件
  2. Enterprise Edition の機能
  3. ハードウェア要件

8章 ライセンス管理

  1. ライセンス管理

9章 インスタンス

  1. インスタンスの概要
  2. インスタンスのインストール順
  3. インスタンスとコンポーネント

10章 照合順序

  1. 照合順序

11章 自動インストール

  1. 自動インストール

12章 リモートインストール

  1. リモートインストール

13章 旧バージョンからのアップグレード

  1. SQL Server 2000 の新機能
  2. 旧バージョンからSQL Server 2000 へのアップグレード
  3. SQL Server 6.5 からのアップグレード手順
  4. アップグレード要件
  5. 別エディションへのアップグレード
  6. データベース単体の移行
  7. アップグレード前後の作業
  8. アップグレードのトラブルシューティング
  9. クラスタ環境のアップグレード
  10. アップグレード時の変更点・考慮点

14章 インストール時のトラブルシューティング

  1. セットアップログファイル
  2. インストール時のトラブルシューティング
■ 第3部 データベースの管理 ■

15章 データベース管理の概要

  1. データベース作成上の注意点
  2. データベース情報の表示
  3. データベースオプション
  4. アクセス制御
  5. データベースの削除
  6. データベースファイルの管理
  7. ファイルの削除
  8. データベースファイルの配置
  9. ファイルグループによるパフォーマンス最適化
  10. 複数ファイル使用時のデータ書き込み手順
  11. 容量の計画

16章 セキュリティ

  1. セキュリティモデル
  2. 認証モードの選択
  3. ログインアカウントの追加
  4. データベースユーザーアカウントの追加
  5. オブジェクトの所有者と権限
  6. 権限設定
  7. 偽装と委任
  8. 暗号化
  9. ロール (SQL Server 7.0 以降)
  10. OS コマンドおよび ActiveX スクリプトジョブステップとアクセス権限
  11. アプリケーションセキュリティの管理
  12. Active Directory との統合
  13. Security Manager
  14. SQL Server 7.0 以降で削除されたログイン ID
  15. ファイアウォールセキュリティ
  16. 監査

17章 管理タスク

  1. SQL Server エージェントサービス
  2. SQL Server 電子メール送受信システムの種類

18章 ジョブ

  1. ジョブ
  2. 警告
  3. ジョブのトラブルシューティング
  4. マルチサーバージョブの自動化

19章 データベース保守計画

  1. データベース保守計画
■ 第4部 トランザクション管理 ■

20章 トランザクション管理の概要

  1. ACID 特性
  2. 明示的なトランザクションに含められないステートメント
  3. 暗黙のトランザクション
  4. トランザクションマーク
  5. セーブポイント
  6. 分散トランザクション
  7. チェックポイント発生のタイミング
  8. トランザクションログの切り捨て
■ 第5部 データベースのバックアップと復旧 ■

21章 バックアップ

  1. バックアップに含まれる情報
  2. オンラインバックアップ時の動作
  3. オンラインバックアップ中に制限される操作
  4. バックアップファイルサイズ
  5. バックアップファイル
  6. バックアップコマンド
  7. テープデバイスへのバックアップ
  8. バックアップの種類
  9. バックアップ計画
  10. バックアップ実行権限
  11. バックアップの保存場所
  12. 旧バージョンとの相違点
  13. サードパーティ製品を利用したバックアップソリューション

22章 データベース復旧モデル

  1. データベース復旧モデルの概要
  2. データベース復旧モデル
  3. 一括操作
  4. データベース復旧モデル変更時の考慮事項
  5. ユーザーデータベースの復元手順

23章 データベースの復旧

  1. 復旧プロセスとアクティビティ
  2. 復旧作業前のタスク
  3. バックアップセットの内容確認
  4. リストアコマンド
  5. 未完了バックアップの復元時における動作
  6. 破損したユーザーデータベースの復元
  7. 異なるデータベースへの復元
  8. データベース破損時における復元前のタスク
  9. 障害発生直前時点への復旧
  10. 特定時点への復元
  11. ファイルまたはファイルグループバックアップからの復元
  12. SQL Server が起動しない原因
  13. サーバー復旧手順 (SQL Server 7.0 以降)
  14. master データベースの再構築
  15. master データベース再構築後のユーザーデータベース認識処理
  16. バックアップ/リストアによるデータベースの移行 (SQL Server 7.0 以降)
■ 第6部 パフォーマンス監視 ■

24章 パフォーマンス監視

  1. パフォーマンス監視タスク
  2. セキュリティ監査
  3. Windows パフォーマンスモニタ
  4. パフォーマンスモニタにおける監視対象カウンタ
  5. パフォーマンスモニタ監視項目
  6. SQL Server ファイバモード
  7. プロファイラテンプレート
  8. Enterprise Manager [現在の利用状況]ウィンドウ
  9. Transact-SQL 監視ツール
  10. 実行プラン
  11. SQL プロファイラ
  12. SQL Server 7.0 以降で廃止された DBCC ステートメント
  13. パフォーマンス監視とチューニング
  14. パフォーマンスの低いクエリの監視
■ 第7部 ロック ■

25章 ロック

  1. ロックの概要
  2. ロック動作の制御
  3. ロックのモード
  4. デッドロックの回避策
  5. ブロッキングロック
■ 第8部 データ変換 ■

26章 異種データ変換

  1. データ変換時に必要となる操作
  2. 分散クエリを使用したデータ変換
  3. リンクサーバー
  4. ODBC データソース名の設定

27章 DTS

  1. SQL Server データエクスポート/インポートツール
  2. DTS の概要
  3. DTS のツール
  4. DTS コマンド
  5. DTS によるデータ変換

28章 カーソル

  1. カーソル

29章 XML

  1. XML 機能
  2. OPENXML
  3. FOR XML 句
  4. XML ビュー
  5. IIS での SQL Server XML サポートの設定
■ 第9部 インデックス ■

30章 インデックス

  1. インデックスの特徴
  2. インデックスの最大数
  3. 非クラスタ化インデックスの自動再構築タイミング
  4. sysindexes テーブル
  5. 行の検索
  6. インデックス作成のガイドライン
  7. インデックスの作成方法
  8. インデックス情報の表示
  9. インデックスのページ充填率指定
  10. 統計情報 (ヒストグラム)
  11. インデックスチューニングウィザード
  12. インデックスによるクエリのカバー
  13. インデックス使用前の確認
  14. インデックスの削除
  15. インデックス付きビュー
  16. チェックサムインデックス
  17. インデックスの並列作成処理
■ 第10部 レプリケーション ■

31章 レプリケーション

  1. サブスクリプションの方法
  2. レプリケーションエージェント
  3. レプリケーションの種類
  4. 物理レプリケーションモデル
  5. テーブルの水平分割
  6. スタンバイソリューションとしてのトランザクションレプリケーション
  7. 分散データの必要性
  8. データ配布の考慮事項
■ 第11部 高可用性機能 ■

32章 スタンバイオプション概要

  1. 可用性要件の決定
  2. 可用性とスケーラビリティ
  3. 可用性の最大化
  4. スタンバイオプション比較
  5. スタンバイオプション実現ソリューション
  6. スタンバイソリューションの組み合わせ

33章 フェールオーバークラスタリング

  1. フェールオーバークラスタリングの概要
  2. フェールオーバー時の動作
  3. フェールオーバー機能の強化点
  4. フェールオーバー構成
  5. アプリケーション設計時の考慮点
  6. フェールオーバークラスタリングの実装
  7. フェールオーバークラスタリング構成時の考慮点

34章 ログ配布

  1. ログ配布の概要
  2. ログ配布の自動化
  3. ログ配布の構成
  4. サーバーの役割(ロール)変更
  5. ログ配布設計
  6. ログバックアップにおけるフェールバック
  7. 高可用性レポーティングサーバー
  8. レプリケーションにおけるログ配布

35章 分散パーティションビュー

  1. 分散パーティションビューの概要
  2. 分散パーティションビューの実装手順
  3. 分散パーティションビューのクエリ処理
  4. 更新可能な分散パーティションビューの要件
posted by w@ko at 18:57|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

IIS での SQL Server XML サポートの設定

HTTP を使用した SQL Server へのアクセス
  データベースオブジェクトへの直接アクセス (非推奨)
  テンプレート(→ Transact-SQL によって構成された XML ドキュメント)ファイルの実行
  XML パス言語 (XPath) クエリの実行
    XPath は URL の一部として指定されている注釈付きマッピングスキーマファイルに対して実行
 
IIS での仮想ディレクトリの設定
  SQL Server の IIS 仮想ディレクトリ管理ツールを使用
    [スタート]メニュー内の[IIS での SQL XML サポートの設定]
    新しい仮想ディレクトリと SQL Server インスタンス間の関連付けを作成
    SQL Server 仮想ディレクトリを使用した HTML/ASP Web アプリケーションのホストは不可
 
XML が SQL Server にアクセスするプロセス
  1. URL に指定された IIS サーバー名が IIS サーバーを識別
  2.
 
IIS サーバーが URL に指定された仮想ルートに ISAPI の DLL ファイル名拡張子 (Sqlisapi.dll) が登録されているか確認
  3. IIS サーバーがその DLL をロードし、URL 要求をその DLL に渡す
  4.
 
Sqlisapi.dll が SQL Server の OLE DB プロバイダと通信、仮想ルートで識別された SQL Server インスタンスとの通信確立
  XPath クエリは IIS サーバー上で処理
      Sqlxmlx.dll によって Transact-SQL ステートメントに変換、SQL Server に渡される
posted by w@ko at 18:55|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

2005年10月27日

XML ビュー

リレーショナルデータから XDR スキーマを利用して XML ビューを作成可
XPath クエリを使用してアクセス
posted by w@ko at 19:24|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

FOR XML 句

Transact-SQL ステートメント結果セットを XML 形式で直接取得する
FOR XML 句のモード
 
RAW クエリの結果セットに含まれる各行を汎用識別子 row を持つ XML 要素に変換
NULL 値以外の列は XML 要素の属性にマップ
要素タグとして row を使用
属性名は列名と同じ
AUTO クエリ結果をネストされた XML 要素として変換
FROM 句に含まれる各テーブルは少なくとも1つが SELECT 句の一覧に表示、XML 要素として表す
要素名はテーブル名、属性名は列名
EXPLICIT クエリ結果の XML 階層を明示的に指定
XML ドキュメントの形状(要素名、列名)を指定
posted by w@ko at 19:24|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

OPENXML

XML ドキュメントを解析してテーブルやビューと同等の行セットを返す行セットプロバイダ
テーブル、ビューを定義する Transact-SQL ステートメントで使用
XML ドキュメントを指し示すハンドルを取得する必要あり
  sp_xml_preparedocuments システムストアドプロシージャで取得
    sp_xml_removedocuments システムストアドプロシージャでハンドル削除
posted by w@ko at 19:24|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

XML 機能

OPENXML による XML ドキュメント処理 → XML をメモリ上に格納、メモリからロードして実行
XML バルクロードによる一括挿入
XML ビューによるマッピング
XML Web サービス対応
XML 形式でのデータ出力
  SELECT ... FOR XML
SQL XML (オプションパッケージ)が必要 → SQL Server 2005 では統合
posted by w@ko at 19:23|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

カーソル

Transact-SQL の SELECT ステートメントが返した結果セットを行単位で扱うメカニズム
結果セットを一度に1行または行ブロック単位で処理するための一時的な仮想作業領域
  通常リレーショナルデータベースでは条件を満たす完全な行セット(結果セット)が処理の対象
FETCH コマンドを使用して、結果セット内をスクロール可能

○ サーバーカーソルとクライアントカーソル
Transact-SQL サーバーカーソル
  Transact-SQL スクリプト、ストアドプロシージャ、トリガで使用
  サーバー上に実装
  一度に1行を処理
API サーバーカーソル
 
 
OLE DB、ODBC、DB-Library API 関数を使用、Visual Basic 等の言語で書かれたアプリケーションで使用
  サーバー上に実装
  一度に複数行処理可能
クライアントカーソル
  ODBC ドライバまたは DB-Library DLL によって、また ADO API を実装する DLL によって内部的に実装
  結果セットの全行をクライアント上にキャッシュすることで実装
クライアントカーソルよりサーバーカーソルを使用した方がパフォーマンス、操作効率向上

○ カーソルの種類
静的カーソル
  カーソル結果セット全体を tempdb に格納
  カーソルオープン後に行われた変更は反映されない
  読み取り専用
動的カーソル
  カーソルの結果セットのカレントキー値のみを tempdb に格納
  フェッチ時に他のデータを取得
  スクロール時に tempdb を更新
  カーソルオープン後に行われた変更はすべて反映
キーセットドリブンカーソル
  カーソル結果セットのすべてのキーを tempdb に格納
  フェッチ時に全データを取得
  カーソルオープン後に行われた変更は反映されるが、他のプロセスから行われた挿入は反映されない
  カーソル内の行の構成要素および順序はカーソルオープン時に固定、値のみ変更を結果セットに反映
順方向専用カーソル
  カーソル結果セット内の行を順次最初からフェッチ
  順方向のスクロールのみ可能
  他のカーソルのオプションとして設定

○ カーソルの扱い方
操作権限
  更新可能
  読み取り専用
スクロール順序
  スクロール可能
  高速順方向専用

○ 同時実行制御オプション
READ_ONLY 行にロックをかけない
OPTIMISTIC 楽観的同時実行制御を実装 → 更新前にデータ更新状況を timestamp 列で比較
SCROLL LOCKS 悲観的同時実行制御を実装 → データをカーソルの結果セットに読み取る際にロック

○ Transact-SQL カーソルの使用手順
1. カーソルを Transact-SQL ステートメントの結果セットに位置づけ、カーソルの特性を定義
  DECLARE カーソル名 CURSOR [オプション] FOR ステートメント
2. Transact-SQL ステートメントを実行して結果セットを生成、カーソルに読み込み
3. カーソルから1行(行ブロック)で取得(フェッチ)、フェッチを連続実行して行を取得 (スクロール)
  OPEN カーソル名
    FETCH NEXT FROM カーソル名 INTO 変数名
4. 必要に応じてカーソル内の現在位置の行に対して操作
5. カーソルを閉じ、割り当てを開放
  CLOSE カーソル名
    DEALLOCATE カーソル名
posted by w@ko at 19:23|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

バックアップ/リストアによるデータベースの移行 (SQL Server 7.0 以降)

RESTORE ステートメントのみで復元可能
  SQL Server 6.5 以前ではデバイスの再作成が必要
 
元のファイルパスとは異なる場所に復元する方法
  RESTORE ステートメントで MOVE...TO オプションを使用
  Enterprise Manager の復元の[オプション]で[復元先]パスを指定
posted by w@ko at 19:22|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

チェックポイント発生のタイミング

自動チェックポイント
  Enterprise Manager → サーバーのプロパティ → [データベースの設定]タブ → [復旧間隔]
CHECKPOINT ステートメントによる手動実行
ALTER DATABASE ステートメントによるデータベースオプション変更
サーバー(インスタンス)の停止
  サービスマネージャによるサービスの停止
  SHUTDOWN ステートメント実行
posted by w@ko at 19:22|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

分散トランザクション

複数のサーバーにわたるトランザクション処理
 
BEGIN DISTRIBUTED TRANSACTION ステートメントで明示的にステートメント開始
  終了は COMMIT|ROLLBACK TRANSACTION
 
トランザクションの発行者:開始ステートメントの実行者、分散トランザクションを管理
  SQL Server では MS DTC サービスがステートメントを管理
 
2 フェーズコミット (2PC)
  ネットワーク障害により一部のサーバーがトランザクションのコミットやロールバックを行う危険性を避ける
  準備フェーズ
   
 
コミット要求を受け取った MS DTC サービスがそのトランザクションに関連するすべての SQL Server に準備コマンドを送信
   
 
各 SQL Server はトランザクションを持続的なものにするために必要な処理をすべて実行、トランザクションのログイメージが入っているすべてのバッファをディスクにフラッシュ
    SQL Server の準備フェーズが完了すると MS DTC に準備の成否を通知
  コミットフェーズ
   
 
すべての SQL Server から準備の正常完了通知を受け取った MS DTC は SQL Server にコミットコマンドを送信し、コミットを完了
   
 
全 SQL Server がコミット正常完了を報告した場合、トランザクションマネージャはアプリケーションに成功通知を送信
   
 
準備できなかったことを報告する SQL Server があった場合、MS DTC は全 SQL Server にロールバックコマンドを送信、アプリケーションにコミットできなかったことを報告
      → 全 SQL Server でコミットが完了するまでコマンドを送り続ける
posted by w@ko at 19:20|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

セーブポイント

トランザクションを部分的にロールバックするためにトランザクション中に含めるポイント
SAVE TRANSACTION セーブポイント名
  ...
  ROLLBACK TRANSACTION セーブポイント名
posted by w@ko at 19:19|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

トランザクションマーク

トランザクションログ内に記録
自動復旧プロセスでトランザクションの開始/終了タイミングを判断するために使用
特定マークの時点まで復旧可

 
トランザクションは BEGIN TRANSACTION マークに対応する COMMIT TRANSACTION マークがあるとトランザクションが完了しているものとみなす
posted by w@ko at 19:18 | TrackBack(0) |  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

暗黙のトランザクション

トリガ(トランザクション開始のきっかけ)となるステートメント
 
ALTER TABLE テーブル定義の変更
CREATE 各種オブジェクトの作成
DELETE 行の削除
DROP 各種オブジェクトの削除
FETCH カーソルからの特定行の取得
GRANT 権限の付与
INSERT 行の追加
OPEN カーソルのオープン
REVOKE 権限の削除
SELECT 行データの取得
TRUNCATE TABLE 全行の削除
UPDATE 行データの変更
  既定では自動コミットモード
    暗黙のトランザクションモードを有効にした場合は以下のステートメントを明示的に指定
 
終了ステートメント
 
COMMIT TRANSACTION トランザクションのコミット
ROLLBACK TRANSACTION トランザクションのロールバック
 
終了の指定がない場合
  トランザクションは接続が終了するまで維持
  ユーザーが接続終了した時点でトランザクションはロールバック
 
トランザクションのネストは不可
posted by w@ko at 18:32|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

トランザクションログの切り捨て

○ 自動切り捨て
データベース復旧モデルをシンプルモデルにする

○ 手動切り捨て (フル/一括ログ記録モードの場合)
トランザクションログバックアップを実行
手動切り捨てコマンドを実行
  BACKUP LOG データベース名 WITH TRUNCATE_ONLY
  BACKUP LOG データベース名 WITH NO_LOG
  BACKUP コマンドだがバックアップは行われない
  SQL Server 7.0 以降は両者に違いはない
    SQL Server 6.x 以前ではバックアップ情報を残す、残さないの違いがある?

※ トランザクションログ切り捨て操作はトランザクションログに記録されない

posted by w@ko at 18:31|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

明示的なトランザクションに含められないステートメント

ALTER DATABASE データベース名変更、ファイル/ファイルグループ設定
BACKUP LOG トランザクションログのバックアップ
CREATE DATABASE データベース作成
DROP DATABASE データベースの削除
RECONFIGURE 環境設定オプション設定値の更新
RESTORE DATABASE データベースの復元
RESTORE LOG トランザクションログバックアップのロード
UPDATE STATISTICS 統計情報の更新
DISK INIT デバイス作成 〔→ CREATE DATABASE/ALTER DATABASE〕
DUMP TRANSACTION バックアップコピー作成 〔→ BACKUP DATABASE〕
LOAD DATABASE データベースの復元 〔→ RESTORE DATABASE〕
LOAD TRANSACTION トランザクションログバックアップのロード 〔→ RESTORE LOG〕

  ※はレガシーステートメント

posted by w@ko at 18:31|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

ACID 特性

トランザクション処理に必要とされる特性 (ACID 特性)
  Atomic (原子性)
  Consistent (一貫性)
  Isolated (隔離性)
  Durable (永続性)
 
一貫性と隔離性の両立
  各アプリケーションは自分自身で一貫性を保証
  各アプリケーションは一貫性のある隔離された結果を得ることが可能
  排他制御は隔離された結果を得るために使用
posted by w@ko at 18:30|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

データベース保守計画

○ データベース保守計画で設定できるタスク
データ、インデックスの再構築
データ圧縮 (未使用領域の削除)
統計情報の更新
データベース整合性のチェック
データベース、トランザクションログのバックアップ
ログ配布
保守計画の作成は全データベース/データベースごとの選択可
保守計画の記録の保存が可能
posted by w@ko at 18:29|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

データベース単体の移行

○ データベース単体のアップグレード方法
バックアップ/復元
デタッチ/アタッチ
bcp
スクリプト … SQL スクリプト書き出し
  Enterprise Manager → [ツール] → [SQL スクリプト生成]
  Enterprise Manager → オブジェクト右クリック → [SQL スクリプト生成]

○ バックアップの互換性
変換前 変換後 可否
SQL Server 6.5 SQL Server 7.0 ×
SQL Server 6.5 SQL Server 2000 ×
SQL Server 7.0 SQL Server 2000
SQL Server 2000 SQL Server 7.0 ×

○ アタッチの互換性
変換前 変換後 可否
SQL Server 6.5 (*.dat) SQL Server 7.0 ×
SQL Server 6.5 (*.dat) SQL Server 2000 ×
SQL Server 7.0 (*.mdf) SQL Server 2000
SQL Server 2000 (*.mdf) SQL Server 7.0 ×

○ デタッチ/アタッチによるデータベースの移行

【参照】 マイクロソフト 技術情報 224071

posted by w@ko at 18:28|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

SQL Server 2000 の新機能

○ パフォーマンス向上
SQL Server7.0 でアーキテクチャを一新 → ストレージエンジンを強化
  Jim Gray を筆頭にデータベースの世界では有名なアーキテクトたちが設計
    今後何十年先も通用するプラットフォームを目指した大改造
  TPC-C ベンチマークでトップを獲得
データベースエンジンの強化 (SQL Server 7.0 以降)
  クエリオプティマイザ (SQL 文解析ツール)の強化
  行単位のロック(SQL Server 6.5 までは INSERT 行ロック = 細粒度のみ) → 同時実行性強化
  統計の自動更新 → テーブルヒストグラムの自動生成
  並列クエリ、マルチインデックス利用
  ページサイズ 2KB → 8KB へ変更
  マージ結合、ハッシュ結合 → 結合効率強化
  アドホック SQL の自動パラメータ化 → プロシージャキャッシュに格納
    再利用性、パフォーマンス向上
DBCC ステートメントのパフォーマンス向上 (SQL Server 7.0 以降)
  データベースにかけるロック粒度が細かくなる → 他トランザクションへの影響を少なくする
  並列 DBCC (SQL Server 2000 以降)
bcp コマンドのパフォーマンス強化 (SQL Server 7.0 以降)
インデックス再構築 (DBCC INDEXDEFRAG:SQL Server 2000 以降)
  並列インデックス再構築
SQL Server 2000 Enterprise Edition のみの強化点
  32CPU、64GB メモリ(32-bit)/64CPU、512GB メモリ (64-bit) 対応
  並列 DBCC 処理、並列インデックス再構築 ← マルチプロセッサ
  インデックス付きビュー
  分散パーティションビュー

○ 信頼性向上
4 ノードクラスタ (SQL Server 2000 Enterprise Edition のみ)/8 ノードクラスタ (Windows Server 2003)
ログ配布によるバックアップサーバーの配置 (SQL Server 2000 Enterprise Edition のみ)
障害発生直前まで復旧可能 (SQL Server 2000 以降、SQL Server 7.0 までは一部回復不可)
SAN 対応(SQL Server 2000 以降)
バックアップ
  オンラインバックアップの性能向上 (SQL Server 2000 以降)
  差分バックアップ (SQL Server 7.0 以降、SQL Server 6.5 までは表レベルバックアップ)
  バックアップ/復元操作が容易 (SQL Server 7.0 以降)
  データベースアタッチ機能 (SQL Server 7.0 ではコマンドライン上、SQL Server 2000 では GUI で操作可能)
  オンラインバックアップ中に実行されたトランザクションをバックアップに含める (SQL Server 7.0 以降)

○ 管理運用/開発コストの削減
動的な自己管理 (SQL Server 7.0 以降)
  統計の自動更新、動的なメモリ管理
  環境設定オプション(sp_configure)の自動化
  データベースの自動拡張
    拡張作業中はデータベースアクセス不可 → 大規模環境ではメリット小?
  ヒストグラム自動作成 … WHERE 句に未知の情報があった場合有効
管理作業の負荷軽減 (SQL Server 7.0 以降)
  DBCC CHECKDB によるメンテナンス(データ整合性管理)が必須ではない
より使いやすい管理/開発ツール (SQL Server 7.0 以降)
  Enterprise Manager
      容量表示、インデックスの一覧表示、クエリ (DTS) デザイナ、ダイアグラム
  クエリアナライザ
      カラー表示、グラフィカル実行オプション、オブジェクトブラウザ (SQL Server 2000 以降)
豊富な管理/開発ツール
  データベースコピーウィザード (SQL Server 2000 以降) → ネットワーク経由でデータベースコピー
  インデックスチューニングウィザード (SQL Server 7.0 以降) → インデックスの構築
  DTS (SQL Server 7.0 以降)
  SQL プロファイラ (SQL Server 7.0 以降、SQL Server 6.5 までは SQL Trace)
      再生可能、C2 レベル(セキュリティ認証要件)準拠トレース
  ジョブ (SQL Server 7.0 以降、SQL Server 6.5 まではタスク)
    複数ステップ (← 1 ステップのみ)
    ワークフロー制御可能 → エラー時の処理設定等が可能に
    Active X スクリプト対応 → VBScript、JScript コマンドベース
Visual Studio 6.0/.NET との親和性 (SQL Server 7.0 以降)
  開発ツールからオブジェクトが作成可能
Access 2000/2002 との親和性 (SQL Server 7.0 以降)
  Access プロジェクト (.adp) … リンクテーブルからの脱却
      Access から SQL Server データベースの操作、フォーム形式の開発が可能

○ データの活用(データウェアハウス)
インデックス付きビュー (SQL Server 2000 以降)
  GROUP BY で集計演算した結果をオブジェクトとして保存可能
      ビューデータをインデックスに格納 ← 更新の少ない静的ビュー
Analysis Services (SQL Server 2000、SQL Server 7.0 では OLAP Services)
  キューブ (MOLAP、ROLAP、HOLAP) → 集計演算を事前集計したもの データマイニング
  内部的にビットマップインデックスを利用
DTS によるデータコピー/変換 (SQL Server 7.0 以降)
  分析に適した形に変換

○ 豊富な先進テクノロジを搭載
XML 対応 (SQL Server 2000 以降)
Office と Web ブラウザで利便性の高い分析 (SQL Server 7.0 以降)
  Web ブラウザからピボットテーブルによる分析 (Office 拡張機能)
データマイニング機能 (SQL Server 2000 以降)

○ その他機能
フルテキストインデックス (SQL Server 7.0 以降) → 全検索エンジン Microsoft Search サービス
分散クエリ、リンクサーバー (SQL Server 7.0 以降) → 他データベースにアクセスして検索
マルチインスタンス (SQL Server 2000 以降)
最大仕様の向上 (SQL Server 7.0 以降)
  テーブルあたりの列数 (250 列 → 1024 列)
  ページサイズ (2KB → 8KB)
  最大行サイズ (2KB → 8KB 〔正確には 8060B〕)
  文字型、バイナリ型の最大サイズ (255B → 8000B)
  クエリで使用される内部作業テーブル数 (16 → 無制限)
新しいデータ型
  Unicode データ型(nchar、nvarchar、SQL Server 7.0 以降)
  bigint、table (テーブルデータ〔仮想表〕型)、variant (あらゆるデータ型) (SQL Server 2000 以降)
text/image 型の記憶方法の改善 (SQL Server 7.0 以降)
ユーザー定義関数 (SQL Server 2000 以降)
レプリケーション強化
  マージレプリケーション (SQL Server 7.0 以降)
  即時更新サブスクライバオプション (SQL Server 7.0 以降) → 配布先(サブスクライバ)でも更新可
  キュー更新オプション (SQL Server 2000 以降) → オフライン状態でもレプリケーション可
複数トリガ (SQL Server 7.0 以降)
INSTEAD OF トリガ (SQL Server 2000 以降)
  通常のトリガと動きが異なる
      トリガ元 SQL 文が実行されない場合にトリガ内部の手続を実行
        INSTEAD OF INSERT
      ビューに対する変更命令をユーザーに透過的に表示 (← ビュー上の変更に制限あり)
パフォーマンス条件警告 (SQL Server 7.0 以降)
posted by w@ko at 18:28|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

Osql

osql
-U   ログオンユーザーアカウントを指定
-P  
 
ログオンユーザーのパスワードを指定
(指定しない場合は osql 起動直後にパスワードを要求される)
-S   接続先サーバーを指定 ※ 「.」を指定するとローカルサーバーに接続
-E   信頼された接続 (Windows 認証を使用してローカルサーバーに接続)
-n   入力行から行番号とプロンプト記号を削除
-i   スクリプトからインポート
-o   スクリプトへエクスポート
posted by w@ko at 18:26|  ・SQL Server ノート | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。