SQL Serverで空間インデックスを設定し空間演算を高速化する

SQL Server

 データベースのテーブルに適切なインデックスを設定するのはクエリを高速化するうえで重要な施策である.今回,空間演算にコストがかかっていたクエリが空間インデックスの設定により高速化したので報告する.

“SQL Serverで空間インデックスを設定し空間演算を高速化する” の続きを読む

第14章 インデックス作成 (Beginning Spatial with SQL Server 2008)

SQL Server

 効率的なインデックス作成は,迅速かつ効率的に結果を探索するデータベースアプリケーションを作成するために重要である.空間データを蓄積するためにデザインされる geometry 型および geography 型に加えて,SQL Server 2008 はまた空間データを使用するための新しいインデックスの型を含んでおり,それは(驚くべきことでもないが)空間インデックスと呼ばれる.本章では空間インデックスがどのように動作し,空間インデックスを使って空間クエリの速度をどのように改善するか説明する.

付記 SQL Server の汎用クラスター化インデックスおよび非クラスター化インデックスは多くの異なるデータ型のインデックスを作成するのに使われ,そこには int 型,char 型および datetime 型を使って蓄積される値を含んでいる.しかし,空間インデックスはgeometry 型および geography 型の列の上でしか作成されず,これらのデータ型の列にのみ空間インデックスは追加できる.

“第14章 インデックス作成 (Beginning Spatial with SQL Server 2008)” の続きを読む

国土数値情報の洪水浸水想定区域データをSQL Serverにアップロードし郵便番号から検索する

SQL Server

 地球温暖化に伴い,台風の大型化や洪水被害の拡大が懸念されている.今回は国土交通省の公表している洪水浸水想定区域データを SQL Server にアップロードしたのでその経緯を報告する.

 このデータは2022年9月時点で令和3年のものであり,毎年更新されていくものと思われる.関係各位はデータ更新が大変だろうが,頑張っていただきたい.

“国土数値情報の洪水浸水想定区域データをSQL Serverにアップロードし郵便番号から検索する” の続きを読む

第13章 空間の関係性を検査する(Begining Spatial with SQL Server 2008)

SQL Server

 空間情報を解析するとき,しばしば地球上の2つ以上の地物の関係を理解したくなる.例えば,a と b はどれだけ離れているのか?x と y との間の経路に z はあるのか?p と q は共通の境界を共有しているのか?本章では,これらの疑問に答えるためのメソッドを紹介し,空間データの2つのアイテム間の関係の異なる点から比較しよう.これらのメソッドのすべての構文は,比較のなされるインスタンスがパラメータとしてメソッドに提供され,最初のインスタンス上で次のように動作する.

Instance1.Method(Instance2)

 geometry 型および geography 型の両者が実装しているメソッドのコアセットは空間関係を比較するのに使われ,STEquals(), STIntersects(), STDistance() を含んでいる一方,geometry 型は特異的な関係を検査するのに使うもっと拡張した範囲のメソッドを実装しており,STOverlaps(), STCrosses(), および STContains() のようなものである.本章で紹介する各メソッドについて,どちらのデータ型で使われるか示そう.注意すべき点として,geometry 型および geography 型両者に実装されていても,異なるデータ型のインスタンスをそのメソッドで比較することはできないことである.例えば,STDistance() メソッドは2つの geography 型インスタンス間または2つの geometry 型インスタンス間の距離を計算することはできるが,geometry 型インスタンスと geography 型インスタンス間の距離を決定するのに使うことはできない.

“第13章 空間の関係性を検査する(Begining Spatial with SQL Server 2008)” の続きを読む

第12章 空間オブジェクトを修飾する (Begining Spatial with SQL Server 2008)

SQL Server

 本章においては,他の既存のインスタンスの一部を修飾したり,結合したり,選択したりして geography 型や geometry 型のデータの新しいアイテムを生成するのに使われる多くのメソッドを紹介しよう.これらのメソッドは静的メソッドとは異なり,ジオメトリの座標点の表現から新しいデータのアイテムを代わりに生成することを了承いただきたい.

 本章で論ずるメソッドのいくつか,例えば STBuffer(), STConvexHull() および Reduse() は,単一のインスタンス上で動作する.他のメソッド,例えば STIntersection() および STDifference() は一つ以上のジオメトリ上で動作する.SQL Server 2008 におけるすべての空間機能性の場合のように,geometry 型および geography 型は利用可能なメソッドや,同じ方法でそれらを実装する同じセットをもつ必要はない.本章で紹介する各メソッドについて,いつどのようにそれが使われるかを見せよう.

付記 本章で論ずるメソッドは,それが呼び出された元のインスタンスにいかなる変化をも与えない.むしろ,それらはそれらのインスタンスで表現されるジオメトリの修飾により新しいインスタンスを生成する.

“第12章 空間オブジェクトを修飾する (Begining Spatial with SQL Server 2008)” の続きを読む

第 11 章 空間オブジェクトのプロパティを検査する(Begining Spatial with SQL Server 2008)

SQL Server

第 4 部 空間データの解析

 本書のこの部では,geography 型および geometry 型でデータをフィルターし解析できるメソッドを論ずる.それはアプリケーションにおいて空間データの力を開発するのに使うのに必要な主要な機能を提供してくれる.
 そのメソッドは3つのカテゴリに分類される.章ごとに一つ.第11章では個別の空間オブジェクトのプロパティについての情報を解析して返すメソッドを扱う.第12章では既存のオブジェクト間の組み合わせまたは修飾の間の新しいオブジェクトを定義するメソッドをカバーする.第13章ではオブジェクト間の関係をテストするメソッドを紹介する.例えば同一性,近接性,交差などである.

“第 11 章 空間オブジェクトのプロパティを検査する(Begining Spatial with SQL Server 2008)” の続きを読む

第 2 章 SQL Server 2008 で空間データを実装する (Beginning Spatial with SQL Server 2008)

 前章では,空間参照系の背後にある理論を紹介し,異なる種類のシステムが地球上の特徴を記述する方法を説明した.本章では,これらのシステムを適用して SQL Server 2008 における新しい空間データ型を使って空間情報を蓄積する方法を学んでもらう.

“第 2 章 SQL Server 2008 で空間データを実装する (Beginning Spatial with SQL Server 2008)” の続きを読む

第 1 章 空間情報を定義する (Beginning Spatial with SQL Server 2008)

 空間データをデータベースで扱うにあたりどうしても避けて通れないのが,空間データがデータベース内でどう扱われているかを知ることである.

 EXCEL のオブジェクトも本質を知っているわけではないが,プロパティやメソッドを知ることで「どう動いているか」は見当がつく.SQL Server でも同じことである.

“第 1 章 空間情報を定義する (Beginning Spatial with SQL Server 2008)” の続きを読む