トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
開発者必見! 覚えておきたいSQL Serverの便利機能
文=堀 真人(株式会社システムインテグレータ)
第1回
SQL クエリアナライザのクエリ実行機能
Oracleでは各社から便利な開発ツールが出ていますが、SQL Serverの世界では、強力な開発支援機能を標準搭載しているため、あまり他社製品が出てこない状況です。この連載では、開発者にとってのSQL Serverの特筆すべき便利機能を、いくつかピックアップして紹介していきます。今回は、SQL クエリアナライザのクエリ実行機能です。
Tips 1

複数クエリ同時実行機能


クエリアナライザのクエリ入力画面(クエリウィンドウ)に3つのクエリを書くと、結果表示画面(結果ペイン)に検索結果が3つ縦に並んで表示されます。この機能は、テスト作業で多くの情報を一度に確認するときに便利です。

たとえば、販売システム開発などで、お客さんの住所と販売履歴と発送先を調べるとしましょう。

SELECT * FROM 顧客 WHERE 顧客コード='01'
SELECT * FROM 販売履歴 WHERE 顧客コード='01'
SELECT * FROM 発送先 WHERE 顧客コード='01'

このように書いて実行すれば、3つのSQLのクエリ結果が一度に出るので、お客さんの情報を一度に見ることができます。

さらにTransact-SQL(OracleでいうPL/SQL)の変数も使えるので、次の例のように変数に代入することもできます。

DECLARE @CustomerCode nvarchar(10);
set @CustomerCode='01'; --別のお客さんを見たいときはここを変更
SELECT * FROM 顧客 WHERE 顧客コード=@CustomerCode
SELECT * FROM 販売履歴 WHERE 顧客コード=@CustomerCode
SELECT * FROM 発送先 WHERE 顧客コード=@CustomerCode

ソフトを動かしながら一方でクエリアナライザを開き、このようなSQLでDBの値を確認していけるので、開発効率がダンゼン違ってきます!

■ 複数クエリ同時実行結果の表示例
(図)複数クエリ同時実行結果の表示例


Tips 2

クエリテンプレート機能で楽々SQL作成


クエリアナライザの画面左「オブジェクトブラウザ」でテーブルの画像を右クリックすると、テーブルに関係するSELECT、INSERT、UPDATE、DELETE文に加えて、CREATE文とDROP文のテンプレートを自動で作成できます。Oracleでは他社製ツールでよく見る機能ですが、クエリアナライザには標準で付いてきます。

■ SQL自動作成機能
(図)SQL自動作成機能


Tips 3

SQL実行計画の表示でチューニング指標を得る


クエリアナライザでクエリを書いて「推定実行プラン表示」ボタンを押せば、すぐにSQLの実行プランが画像で表示されます。たとえば、顧客表を見るのにAインデックスを使って作業時間として作業コストの40%、表結合方式はネステッドループジョインで作業コストの15%、最後にOrderBy句でソート作業が入り作業コストの20%を使う、といった情報が瞬時にわかるようになっています。さらに実行プランの各項目にカーソルを合わせると、見積I/Oコスト、見積CPUコストなど、コストの内訳が表示されます。SQL Serverの開発者は、この情報を元にSQLをチューニングすればよいわけです。

■ SQL実行計画の表示
(図)SQL実行計画の表示


Tips 4

すぐに開けるSQLリファレンス


クエリアナライザを操作中にSQLの文法がわからなくなったら[F1]キーを押せば、SQL Serverのヘルプファイルである[SQL Server Books Online]が開きます。ここにはSQLのリファレンスもあるので、文法書を手元に置く必要はありません。

■ SQL Server Books OnlineのSQL リファレンス
(図)Books OnlineのSQL リファレンス


・ 第1回 SQL クエリアナライザのクエリ実行機能
・ 第2回 SQL クエリアナライザ Part 2
・ 第3回 開発者のための、日常的バックアップの小ワザ
・ 第4回 SQL Server 転ばぬ先の杖!
・ 第5回 エラーをやっつけろ!
・ 第6回 SQL構文の違いを押さえる!
・ 第7回 Transact-SQLをマスターしよう!
・ 第8回 パフォーマンス監視ノウハウ


著者プロフィール
堀 真人(HORI, Masato)
株式会社システムインテグレータ
http://www.sint.co.jp/


新横浜で2年半Oracleを使い、埼玉に飛んでからはSQLServerと戦う毎日を送る“DBバイリンガル”な27歳。
ITとは、「アイデアを支えるテクノロジー」と心得る。
趣味はレゲエとSQL Server。愛読書はレゲエ専門誌「Riddim」とデータベース専門誌「DBマガジン」。

← 特集!DBバイリンガル 目次

PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.