SQL Server 2008 早期共同検証プロジェクト (CQI)

マイクロソフト 星川です。   9月から11月にかけてUS出張などがありとても忙しく、寝不足の毎日が続いておりました。最近やっと通常通りのペースになってきました。   現在、我々日本の開発チームは日本独自の SQL Server 品質向上プロセスである CQI (Center of Quality Innovation) を社内のフィールド、パートナー様と共同で推進しております。我々の部隊は米国本社の開発チーム直下ということもあり随時情報共有しており、この日本での取り組みは米国本社でも高く評価、期待されております。次期リリース予定の SQL Server 2008 では大きく4つのシナリオ (コンプライアンス、データ ウェアハウス、サーバー統合、旧バージョンからのアップグレード / 移行) にフォーカスし、それぞれのシナリオをパートナー様である NEC様、日本HP様、日本ユニシス様と共同で取り組んでおります。各パートナー様のエンジニアの方々には今後、我々開発チームがいる調布技術センターに常駐していただき、ラボでの深い実検証を通して製品品質を向上し、パートナー様・お客様が実際に製品を選択していただく際や展開する際に役立つノウハウを早期入手、またそれらの情報を技術文書として幅広く提供したいと思っております。今回名前が出てないパートナー様以外にも本当に様々な方のご協力を得ており、とても感謝しております。例えば、技術文書をお願いする方々もとても信頼しており、検証内容だけでなく技術文書もレベルの高いものが提供できると考えております。また、それと同時に人間的ですが、パートナー様を始め様々な方とは長期的なリレーションシップを育てていきたいと思っております。   この取り組みですが、実際には SQL Server 2005 から引き続き行っているプロジェクトであり、実績として徹底検証シリーズとして6本の技術文書をすでにリリースしております。今回の SQL Server 2008 のプロジェクトには前回の経験と知識を踏まえ、常に改善しております。また、より多くのリソースを集中させ来年度に予定している SQL Server 2008 の製品リリースを成功させたいと考えております。すでに幅広く国内の主要なメディアにてカバーされておりますが、先日発表されたパートナー様とのCQI に関する共同プレスリリース、特にその記者会見ではパートナー様からの力強いお言葉を頂くことができました。この場をお借りして、お礼を申し上げたいと思います。   SQL Server 2008 早期共同検証プロジェクト CQI に関するプレスリリース http://www.microsoft.com/japan/presspass/detail.aspx?newsid=3271 日本語 SQL Server 2008 サイト http://www.microsoft.com/japan/sql/2008/ SQL…

1

SQL Server 2005 トランザクション・レプリケーションの最適化 (SubscriptionStreams)

マイクロソフトの植田です。   今回はレプリケーションに関する話題をご紹介したいと思います。 http://blogs.msdn.com/sqlcat/archive/2007/05/07/sql-server-2005-transactional-replication-benefit-of-using-subscriptionstreams-for-low-bandwidth-high-latency-environments.aspx  注:下記内容に関する詳細の確認をご希望される場合は上記のブログを参照いただけますようお願いします。 本ドキュメントは以下の方を対象としております。 l  開発者、テストエンジニア、データベース・アドミニストレータ l  データベース、および、Microsoft SQL Serverについて基本的な知識をお持ちの方 l  Microsoft SQL Serverレプリケーションに関して基礎的な知識をお持ちの方 Microsoft SQL Serverレプリケーションに関する概要はSQL Server 2005のBooks Onlineをご参照ください(SQL Serverのレプリケーション:http://technet.microsoft.com/ja-jp/library/ms151198.aspx)。   SQL Server 2005 トランザクション・レプリケーション:帯域幅が狭く、遅延が大きい環境でSubscriptionStreamsオプションを設定する利点   Introduction Microsoft SQL Server 2005のトランザクション・レプリケーションを使用する際、ログリーダー・エージェントはログを読み込み、パブリッシュされるアーティクルのためのSQLステートメントを構成し、それをディストリビューション・データベースに渡します。そしてディストリビューション・エージェントはディストリビューション・データベースを読み、その「パッケージ」をサブスクライバに配布/適応します。多くの場合、それらのパブリッシャ、ディストリビュータおよびサブスクライバはトータルの送信遅延が小さい高速ネットワーク上に存在します。しかし、地理的に離れた環境のような遅いネットワーク上では回線速度は大抵、遅延の大きい狭帯域となり、そのような環境ではトータルの送信時間に悪影響を与えることは明白です。(Pingコマンドで簡単に確認できる)ネットワーク遅延はパフォーマンス低下に大きな影響を与えますが、新しいオプション“SubscriptionStreams”を使用することにより劇的にパフォーマンスが向上することがあります。“SubscriptionStreams”オプションはSQL Server 2005と共にインストールされる実行ファイル“DISTRIB.exe”(ディストリビューション・エージェントの設定を行うユーティリティ)のオプションの一つです。“DISTRIB.exe”に関する詳細についてはSQL Server 2005のBooks Onlineをご参照ください(レプリケーション ディストリビューション エージェント:http://technet.microsoft.com/ja-jp/library/ms147328.aspx)   SubscriptionStreams NN (過去のエディションのMicrosoft SQL serverでは)デフォルトでディストリビューション・エージェントはディストリビューション・データベースからサブスクライバ・データベースへトランザクションを送信するのに単一のストリームを使用します。Microsoft SQL Server 2005では、この設定はSubscriptionStreams NNパラメータを指定することにより上書きできます。NNには0(SQL Server以外のサブスクライバまたはピア・ツー・ピアトランザクション・サブスクリプションのための設定値)から64までの値を指定することができます。ただし、64という設定は、特に複数のディストリビューション・エージェントが同一サーバ上で同時実行している場合は、非現実的なスレッド数でしょう。そのパラメータは単一のディストリビューション・エージェントがサブスクライバに対してバッチ変更をパラレルで適応するために許可する接続数を表しています。たとえトランザクションがパラレル化されても、トランザクションの一貫性が維持される点が重要です。この点はプライマリ・キーにおいて効率的にハッシュ、および、分割を行い、サブスクライバでコミットする前に再度組み立てを行うことで実現できます。しかし、SQL Server Books Onlineに記載されている通り(レプリケーション ディストリビューション エージェント:http://technet.microsoft.com/ja-jp/library/ms147328.aspx)、もし一つの接続において実行、または、コミットが失敗したら、すべての接続は実行中のバッチ処理をアボートし、ディストリビューション・エージェントは失敗したバッチ処理をシングル・ストリームで再実行します。この再実行が完了するまでは、サブスクライバにおいて一時的にトランザクションの非整合が生じている可能性があります。失敗したバッチ処理が無事コミットされると、サブスクライバはトランザクションの一貫性が保たれた状態に戻ります。   The…


パフォーマンス比較;クラスタ化インデックス vs. ヒープ

マイクロソフトの植田です。   SQL Server 2005の特徴の一つに、Primary key制約を指定してテーブル作成するとデフォルトでクラスタ化インデックスが作成される点があります。基本的にSQL Server ではクラスタ化インデックスを作成するメリットがあるためこのような動作を行いますが、非クラスタ化インデックスのみのテーブルと比べてどれほどの性能差があるのでしょうか。 今回はこの点についてテストした結果をご紹介させて頂きます。   本内容は米国のTechNetのサイトにて公開されておりますが、ここでは要点をいくつかピックアップして解説したいと思います。 注)本内容に関する詳細は以下のWebサイトで取り扱われております。 http://www.microsoft.com/technet/prodtechnol/sql/bestpractice/clusivsh.mspx   今回の検証の主な目的は以下を明らかにすることでした。 1.   クラスタ化インデックスを持つテーブルと、非クラスタ化インデックスを持つテーブルに対してDML(SELECT, INSERT, UPDATE, DELETE)操作を行った時、パフォーマンスにどの程度差が生じるか 2.   ID列を持つテーブルにクラスタ化インデックスを設定し、マルチスレッドで行の挿入を行った時、並列スレッド数とパフォーマンスの間にどのような関係があるか 3.   大量の行の挿入/削除を行った時、クラスタ化インデックスを持つテーブルと、非クラスタ化インデックスを持つテーブルとでは、ディスクスペースの使用率(効率性)に違いがあるか 本ブログでは上記の1について説明させていただきます。   クラスタ化インデックスと、非クラスタ化インデックスの大きな違いは、クラスタ化インデックスでは、インデックス・ツリーの最下層の部分(リーフノード)に実際の行のデータが収められているデータ・ページ(行データはインデックスキーの順序でソートされている)がリンクされるのに対し、非クラスタ化インデックスでは、インデックス・ツリーのリーフノードにインデックスキーが存在する行の行IDが格納されていて、実際の行データはデータ・ページ上でランダムに配置されている(インデックスキーの順序に沿って並んでいるわけではない)点です。両者の構造の詳細についてはSQL Server 2005のBook Onlineをご参照ください。 クラスタ化インデックスの構造:http://msdn2.microsoft.com/ja-jp/library/ms177443.aspx 非クラスタ化インデックスの構造:http://msdn2.microsoft.com/ja-jp/library/ms177484.aspx   テスト環境 テストでは以下のテーブルを使用しました。 CREATE TABLE Tab1 ( ORG_KEY BIGINT, PROD_KEY BIGINT, TIME_KEY BIGINT, CST_NON FLOAT, CST_RPL FLOAT, RTL_NON FLOAT, RTL_RPL FLOAT, UNT_NON FLOAT,…


SQL Server Migration Assistant (SSMA) for Oracle V3.1 が公開されました。

SQL Server Migration Assistant (SSMA) for Oracle は、Oracleデータベースから SQL Server へのアプリケーション移行に役立つツールです。SSMAを利用することで、データベースの変換を迅速、簡単、および正確に行うことが可能になり、SQL Server への移行に関する時間、コスト、およびリスクが大幅に軽減されます。英語版のみですが、先日、V3.1 が公開されました。ここから無償でダウンロードしていただけます。 SSMA で可能な移行作業 • データベースのアセスメント• スキーマとデータの移行• ビジネス ロジックの変換• 移行の確認 このバージョンの主な改善点 – 新: テスター コンポーネント – 元のPL/SQL と変換後のT-SQL コードの機能的な同等性を比較しながらの機能テストを可能にするフレームワークtesting – 新: Oracle subtype 変換- 新: Oracle collection 変換- 新: Oracle ローカル モジュール 変換- 新: 差分/一致表示付きのSQL Server へのシンクロ メカニズム追加 – 新変換 オプションにより、SSMA の動作を指定できます。·        FORALL…

1

SQL Server 2005 Books Online(BOL)2007年5月アップデート 日本語版リリース

マイクロソフトの Coast です。 先日、SQL Server 2005 のヘルプファイル、Books Online(以下 BOL)の日本語アップデート版がリリースされました。 MSDN ライブラリ http://msdn2.microsoft.com/ja-jp/library/ms130214.aspx ダウンロードセンター http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=be6a2c5d-00df-4220-b133-29c1e0b6585f BOL は、年に数回アップデートをされていて、英語版リリースの後、少し遅れて日本語版がリリースされます。今回にリリースされたのは、英語版BOL 2007年5月版の日本語訳になります。 SQL Server 2005 のBOL は、これで、製品版公開以降 4回目のアップデートになります。これまでに、2005年12月、2006年4月、2006年7月、2007年2月に英語アップデート版がリリースされ、日本語版は、ほぼ4か月後の2006年4月、2006年8月、2006年11月、2007年5月にリリースされました。 各アップデート版では、判りにくい説明や、誤記の修正、お客様からのフィードバックを反映した修正がされています。ドキュメントの不備な点で時間をとられないようにするために、最新版のBOL をダウンロードしてご覧になることをお勧めしたいです。各アップデートでの新しいトピックと更新されたトピックは、BOLの[SQL Server 2005 と SQL Server Books Online の新機能]ページで確認いただけます。 このようにSQL Server ドキュメント担当は、お客様からのフィードバックをドキュメントに反映させるように努力をしています。判りにくい説明や、誤記の修正、リンク切れなど、日本のお客様からのより多くのフィードバックをお待ちしています。フィードバックは、BOL の[フィードバックの送信] リンクやMSDN オンラインの[クリックして評価とフィードバックをお寄せください] リンクから、簡単にお送りいただけます。 コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。

4

TechEd 2007 にて SQL Server 2008 の日本語での情報提供始まる

マイクロソフト 星川です。   8/21より4日間、パシフィコ横浜にて弊社のイベントである TechEd 2007 が開催されました。その初日に弊社より Windows Server 2008 (開発コードネーム Longhorn)、Visual Studio 2008 (開発コードネーム Orcas) との共同ラウンチ イベントに関するプレスリリースの発表があり、幅広く国内の主要なメディアでカバーされていると思います。   初日のキーノートでは DMF (Declarative Management Framework) と呼ばれるデータベースに対するポリシーベースの管理機能のデモ、こちらは今後の J-SOX 等の IT コンプライアンス対応においての重要な機能のひとつになると考えております。また、2日目と3日目の SQL Server 2008 の個別のセッションではその DMF の詳細や Resource Governor (CPU、メモリ等のリソースの制御機能) などの新機能の一部ではありますが、デモをご覧にいただけたかと思います。   現在の CTP4 は英語版のみですが、日本語 UI が反映されたビルドは CTP5 のリリースに反映されるよう現在開発を進めております。ドキュメントの日本語化は CTP5 の時点では未完成になると思います。前回の私のブログで触れておりますが今回の SQL Server 2008 では前バージョンからの開発プロセスを大幅に変更しました。これは単に通常リリースの後半に行われるシステム検証にリソースをかけるだけでなく、開発初期段階からのプランニング、チーム編成、コーディング、Check-inの方法、ビルドツリーの構造、開発ツールの見直しなど、幅広いプロセス改善を行っております。その結果が実際の SQL Server…


スキーマ変更時のベスト・プラクティス その2

マイクロソフトの植田です。   今回は前回ご紹介した「スキーマ変更時のベスト・プラクティス」の第二弾をご紹介したいと思います。元になっているU.S.のサイトは以下です。 http://blogs.msdn.com/sqlcat/archive/2006/03/31/566046.aspx 注:下記内容に関する詳細の確認をご希望される場合は上記のブログを参照いただけますようお願いします。 本ドキュメントは以下の方を対象としております。 l  開発者、テストエンジニア、データベース・アドミニストレータ l  データベース、および、Microsoft SQL Serverについて基本的な知識をお持ちの方     スキーマ変更の制御(その2) 質問:SQL Server 2005においてスキーマ変更を行う際のベスト・プラクティスはなんでしょうか。最も早く、簡単な方法は何でしょうか?   答え:その1では、SQL Server 2005 におけるスキーマ変更の動作の要点をまとめました(「スキーマ変更時のベスト・プラクティス」参照)。その2では、データ型、および、ほとんどのデータ長の変更時に発生するバッチ更新要求を分離するベスト・プラクティス・テクニックについて見て行きたいと思います。この方法は10億行規模の大きなテーブルにおいてパフォーマンス、および、同時並行性に与える影響を最小限に保ちつつ、スキーマ変更を短時間で行うことを可能にします。   シナリオ:5文字の郵便番号が格納されている列があり、それを10文字のフォーマット、例えば12345-0001、に拡張するケースを考えましょう。以下のステートメントで郵便番号(Zip code)の長さをchar(5)からchar(10)に変更できます。   alter table alter column ZipCode Char(10)   しかし、10億行のテーブルにおいて列のデータ長を変更すると、同時並行性を著しく損なわせるバッチ更新処理(プロファイラーにて確認可能)が発生します。もしこの様子をプロファイラーで確認したいのであれば、「スキーマ変更時のベスト・プラクティス」を参照してください。   ベスト・プラクティス NULLプロパティを使用すること(「DEFAULT WITH VALUES」句を使用するケースは除きます)は列を短時間で追加する場合のベスト・プラクティスです。その列に値を設定しなければならない場合においても、NULLプロパティを使用することで、Alter tableステートメントの場合とは異なり、更新処理を分離できるので自由度の高い方法を利用できます。   (更新処理の分離を)実現するためのアプローチ: 1.   NewZipという名前の列を追加する 2.   分離する個々のバッチサイズを設定する 3.   詳細な住所コードに変更してNewZip列にデータを投入する 4.   古いZipCode列を削除する 5.   NewZip列をZipCode列に変更する(任意)   ステップ1:新しい列の追加…


[SQL Server JIS2004 対応に関するガイドライン] 技術ポイント解説 Webcast 公開

マイクロソフトの Coast です。  7 月 9 日に、[SQL Server JIS2004 対応に関するガイドライン] 技術ポイント解説を第 48 回 MSDN オフラインセミナーでお話しさせていただきました。平日の夜にもかかわらず、多数の方にお集まりいただきありがとうございました。その時の Webcast がこちらから公開されましたので、ご参加になれなかった方にご覧いただければ幸いです。 また、 7 月 19 日にSQL Server ユーザーグループ PASSJ の「Windows Server 2008 Beta3 セミナー in 東京」でも、同じ内容をお話しさせていただきました。 すでに JIS2004 対応に関するポイントは、ガイドラインで情報を提供させていただいてきたのですが、やはり直接お話しさせていただいた方が、よりご理解いただけたようで、次のようなフィードバックをいただきました。 ・ホワイトペーパーを読んだだけでは理解できなかった部分が理解できました。・言葉の定義や意味が良く分からなかった部分が整理できた。・文字の具体例について技術資料が少なかったため大変ありがたかった。・文字コードに関する知識が高まった。 また、ご参加いただいた方のブログでも Post していただきました。 ・あるSEのつぶやき SQL ServerのJIS2004対策セミナーに行ってきました・Voyageの日記 [SQL Server]MSDNオフライン・河端善博ブログ JIS2004 は続くよ … SQL Server 開発チームでは、JIS2004対応に関しては、引き続き重要なテーマとして取り扱っていくことにしております。JIS2004対応に関して、皆様から、もっとお知りになりたいことや、うまく対応ができた事例、できなかった事例など、コメントを頂けると幸いです。 コメントは、下記 n Comments のリンクをクリックしていただけると書き込みできますので、よろしくお願いします。 コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。


SQL Server 2005 パフォーマンス・チューニングツール;DMVStats 1.01

今回はCodePlexで紹介されているDMVStatsについて説明したいと思います。 DMVStats:http://www.codeplex.com/sqldmvstats   注:下記内容に関する詳細な確認をご希望される場合は上記のサイトをご参照ください。CodePlexはMicrosoftのオープンソース・プロジェクトを掲載しているWebサイトです。CodePlexに関する詳細はこちらのページをご参照ください。 http://www.codeplex.com/CodePlex   DMVStatsはSQL Server 2005で提供される動的管理ビュー(DMV)の情報をデータベースに格納し、パフォーマンスの分析・レポートを行うためのアプリケーションです。動作環境はSQL Server 2005上で、それ以前のバージョンでは動作しません。また、分析した結果をレポートとして表示するためReportingサービスが必要になります。 このツールを使用することで、以下のことを調査できます。 l  Waiting Timeの時系列な情報、および、Signal WaitとResource Waitの比率 l  どのようなリソースがボトルネックとなっているか(Wait Type) l  どのリクエスト(クエリ)が、どのリソースのために待たされているか  l  リソースを多く使用しているリクエスト(クエリ)はどれか l  ブロックされているリクエスト、および、ブロックしているリクエスト   インストール方法は以下の通りです。 1. 上記サイトよりdmvstats_setup.zipをダウンロードする 2. Zipファイルの中のdmvstats.exeを実行し、適当な場所にファイルを展開する 3. コマンドプロンプトよりInstallDMVStatsDBProcs.cmdを実行する分析対象のSQL Server インスタンスに合わせて以下のパラメータを変更する(デフォルトで動作している場合は変更の必要はありません)SQLSERVER_MACHINESQLSERVER_INSTANCE 4. コマンドプロンプトよりDeployReports.cmdを実行するレポートサーバーのURLが「http://localhost/reportserver」でない場合は以下の行を書き換えてくださいset TargetServerURL=http://localhost/reportserver   インストールが終了したら、レポーティングサーバーに接続して設定を行います。 例:デフォルトの設定でインストールを行った場合、Webブラウザで”http://localhost/reportserver”のサイトを開き、DMVStatsのディレクトリをクリックすると下記のような画面が表示されます。      Fig1. DMVStats Top   まずはConfigure DMVstatsレポートを使って監視対象のデータベースを選択します。 DMVStatsはSQL ServerのAgentを使ってDMVの情報を取得しますが、初期設定ではDMVをサンプリングするJobがDisableになっているのでEnableにします。以下はtpccデータベースを監視対象に選んだ例です(監視を開始するためには”enable jobs”をクリックする必要があります)。   Fig2….


SQL Server 2005 のインターナショナル機能 日本語版アップデート(2007/6版)

マイクロソフトの Coast です。先日、このブログでご紹介させていただきました、ホワイト ペーパー「SQL Server 2005 のインターナショナル機能」の日本語版がアップデートされました。 http://go.microsoft.com/?linkid=6743837改訂内容は多くはありませんが、下記のとおりです。 改訂内容 旧(2007/2版) 暗黙的な変換 照合順序間の非 Unicode 文字データの暗黙的な変換は非決定的です。照合順序間の非 Unicode 文字データの暗黙的な変換についても、互換性レベルを 80 以下に設定しない限り、非決定的であると判断されます。   OLE DB OLE DB は、Microsoft Data Access Components (MDAC) の中心となるコンポーネントです。OLE DB は COM に基づいているため、すべての文字列は Unicode BSTR です (Windows XP、Windows Server 2003、および Windows 2000 では UTF-16、他のすべてのオペレーティング システムでは UCS-2)。ただし、MDAC 2.8 SP1 より前のバージョンの MDAC は、名前付きインスタンスをサポートしません。アプリケーションで SQL Server 2005 の名前付きインスタンスに接続できない場合があります。SQL Server…