EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

SQL Server 2012 フルテキスト検索の新機能(後編)

edited by DB Online   2012/04/19 00:00

フィルタテーブルのブロッキング解消

 SQL Server 2008 R2 までのフルテキストインデックスでは、内部的に使用されるフィルタテーブルをもっていました。そのテーブルにはフルテキストインデックス内のデータと、元テーブルの該当するデータの状況を示す情報が格納されています。元テーブルのデータがすでに更新されている場合などに、一致するフルテキストインデックスのデータが最新ではないことを示すためのデータを保持しています。そのためフルテキストインデックスに対してクエリを実行すると、データの状態を確認するためにフィルタテーブルが参照され、その期間は共有ロックが獲得されます。また、元データの更新がおこわなれるとフィルタテーブルへの排他ロックが獲得されます。負荷の高いシステムでは、それぞれの処理が干渉しあってブロッキングが発生し、スループットを低下させる大きな要因となっていました。

 SQL Server 2012では、ブロッキングを発生されるフィルタテーブルの使用を廃止しました。その代りにデータのバージョニングによる管理を新たに導入し、参照クエリの実行を妨げることなくロック競合の防止を実現しています。

メモリリソースの効率的な使用

 次の 2 点でメモリ使用方法の見直しが行われて、より効率的なリソース配分ができるようになりました。

  NUMA (Non-Uniform Memory Access)アーキテクチャへの対応
  フルテキストインデックスのフラグメント作成時のメモリ使用量の見直し/削減

 今回の連載では2回にわたりSQL Server 2012 で、より使い勝手がよくパワフルになったフルテキスト検索を紹介してきましたが、いかがでしたでしょうか。もしも、これまでにフルテキスト検索を使ったことがないのでしたら、これを機会に興味を持っていただき、さらには皆さんの環境でお試しいただけるととても嬉しく思います。



著者プロフィール

  • 平山理(ヒラヤマオサム)

    日本マイクロソフト株式会社 プレミアフィールドエンジニアリング プレミアフィールドエンジニア 日本マイクロソフトの Premier Field Engineering 部で、お客様に SQL Server をスムーズにお使いいただくための様々なお手伝いをしています。Sybase (現 SAP) 勤務時代の 5 年間とマイクロソフトでの 12 年間、データベース道を極めるために精進する毎日です。 二人の娘の父親であり、ハードロックを好む「バッタもん」ギタリストであり、毎月 300 km くらい走る (わりと) シリアス ランナーでもあります。著書に「絵で見てわかる SQL Server の内部構造」(翔泳社)

バックナンバー

連載:あたらしいSQL Server/Denaliの世界

もっと読む

All contents copyright © 2007-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5