タグ付けされた質問 「sql-server」

Microsoft SQL Serverは、Microsoftによるリレーショナルデータベースサーバー製品です。その主要なクエリ言語はT-SQLとANSI SQLです。

2
Geometry.STIntersectクエリの最適化
ESRIベースのプロセスからSQL Serverに単純なジオプロセシングルーチンを移動しようとしています。私の仮定は、それがはるかに効率的であるということです。私の最初のテストでは、重複する線形データを関連付けるために交差ルーチンに取り組んでいます。 私のWCASINGテーブルには1610レコードがあります。これらのケーシングを関連するメインに関連付けようとしています。約277,000のメインがあります。最大1,600のケーシングがあります。 以下のクエリを実行して、個々の一致を見つけるのにかかる時間の一般的な意味を取得します。このクエリは、40秒で5つの有効な交差を返しました。 SELECT Top 5 [WCASING].[OBJECTID] As CasingOBJECTID, [WPUMPPRESSUREMAIN].[OBJECTID] AS MainObjectID, [WCASING].[Shape] FROM [dbo].[WPUMPPRESSUREMAIN] JOIN [WCASING] ON [WCASING].[Shape].STIntersects([WPUMPPRESSUREMAIN].[Shape]) = 1 私の主な質問; 検索順序によっては、この処理が速くなりますか? 「B」の内部で「A」を見つけると、 「A」の内部で「B」を見つける これらのデータセットからの5つのレコードの最初のリターンは問題ではないということです 最初にバッファリングして小さなメインセットに制限してから検索すると、この処理は速くなりますか? SQL Server Tuningを使用して、ジオメトリベースのクエリを操作できますか? SELECT WCASING.OBJECTID AS CasingOBJECTID, WPUMPPRESSUREMAIN.OBJECTID AS MainObjectID, WCASING.UFID AS UFID, WPUMPPRESSUREMAIN_IPS.UFID AS MainUFID, WCASING.SHAPE INTO WCASING_INTDefsV6 FROM WCASING with …

1
SQL Server 2012の近接検索の最速の戦略
これが私の最初の質問です。ご容赦ください。 私は、近くのPOI(ポイントosインタレスト)を見つけるために近接検索を行う必要があるモバイルアプリのバックエンドを実装しています。私はそれが非常に一般的なシナリオであり、非常にシンプルに見えることを知っていますが、実装できる方法はたくさんあるので、経験豊富な専門家がこれらの単純な空間検索をどのように実装しているかを確認したいと思います。 POIは単なるPOINTなので、交差点などを含む複雑な計算は必要ありません。そのため、最初に、GEOGRAPHY列と空間インデックスを使用すると、他の方法よりもやり過ぎになるか、遅くなる可能性があると考えました。だから私はそれを3つのアプローチに絞り込んだ: 1)GEOGRAPHYカラム+空間インデックス これはおそらく、この問題の事実上の解決策です。空間インデックスと地理列があるので、それを使用して距離で検索できます。このようなもの。 SELECT * FROM POIs WHERE Loc.STDistance(@radius) <= @distance; Locには空間インデックスがあるため、非常に高速です。 2)緯度と経度の列に「境界ボックス」を使用する これは、空間インデックスを使用しない簡単なアプローチです。ポイントと半径の境界ボックスを見つけて、単にLatitude列とLongitude列を検索します。両方にインデックスが付けられている場合、この検索は非常に高速になります。距離関数を適用して、「円」の外側のいくつかの値をフィルタリングする必要がありますが、バウンディングボックスを通過しません。しかし、それはかなり速いはずです。このアイデアはここでよりよく説明されています:http : //www.movable-type.co.uk/scripts/latlong-db.html このようなもの: DECLARE @lat float DECLARE @lon float SET @lat = -23.001029 SET @lon = -43.328422 DECLARE @maxLat float, @minLat float, @maxlon float, @minLon float DECLARE @R float DECLARE @distance FLOAT = 100 …

2
SRID:4326データをジオメトリまたは地理として保存しますか?
OGR2OGRを使用して、SRID 4326ポイントデータをMSSQLサーバーにインポートしました。4326としてデータを検出してgeography列を作成するのではなく、geometry列を作成することにデフォルトで気付いていませんでした。私はこれを回避するためのコードを知っているので、問題はありません。 ジオメトリ列のデータはそのままQGISに表示されます。それで、実際にデータを地理列に入れる必要がありますか? ありがとう!

5
SQL Server空間データをGeoJSONに変換し、地図上にプロットする
地理空間データを含むSQLサーバーテーブルがあります。行の例は(列名付き)です。 type: streetline code: 231001 geog: 0xE6100000011 ........ Centroid 0xE61000000C....... geom: 0xE6100000011 ........ 上記の図形をリーフレットマップに描画するために、MVC3でC#を使用しています。上記のsqlデータをデータテーブルにフェッチしています。列「geom」でSQL関数「ToString()」を使用すると、次の結果が得られます。 "LINESTRING (-1.131510412 52.65531, -1.13286 52.65559)", "POLYGON ((-1.1116360 52.6409953, -1.1116683 52.6413, -1.11146723 52.641317, -1.11133263 52.6413572, -1.1113059))", 問題は、上記をGeoJSONに変換して、リーフレットマップにプロットできるようにする方法です。期待される出力(GeoJSON)の例を次に示します。 var geojsonFeature = { "type": "Feature", "properties": { "name": "Coors Field", "amenity": "Baseball Stadium", "popupContent": "This is where the Rockies …

2
31文字を超えるフィールド名を持つArcCatalogデータベース接続SQLデータベーステーブルを開けません
SQLEXPRESSをテスト環境として使用しています。 ArcCatalogにSQLデータベースへのデータベース接続があります。SQLデータベースの一部のテーブルには31文字を超えるフィールド名があり、これらのテーブルはArcCatalogで開くことができません。 Server Management Studioを使用して31文字を超えるSQLフィールド名にエイリアスを指定し、ArcCatalogに再接続したり、SQLデータベースのフィールド名を短くするだけでかまいません(サードパーティが所有しているため、これは難しいでしょう) )?

2
ESRI JS APIを使用して、ArcGIS ServerなしでSQL Server空間タイプをマップする方法
ESRI Javascript APIを使用して、SQL Serverまたは他のRDBMSからの空間データを含むWebマップを作成する人々の話を聞いています。私が言うことができることから、彼らはミドルウェアとしてArcGIS Serverを使用していません。特に、最近、空間タイプを備えたSQL ServerデータベースとEntity Frameworkを使用してデータベースをアプリにリンクする会社について聞きましたが、その後、フロントエンドでESRI JS APIを使用してデータをレンダリングしています。 SQL Server、Entity Framework、ASP.Net、JS APIを個別に使用していて、ArcGIS Serverにアクセスできないので、これは本当に興味深いものです。ESRI以外のバックエンドのフロントエンドとしてJS APIを単に使用するための特定のアーキテクチャまたはワークフローを知っている人はいますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.