sp_help_spatial_geometry_histogram (Transact-SQL)
Gilt für: SQL Server
Erleichtert es, Begrenzungsrahmen und Rasterparameter für einen räumlichen Index mit Schlüsseln zu versehen.
Syntax
sp_help_spatial_geometry_histogram
[ @tabname = ] N'tabname'
, [ @colname = ] N'colname'
, [ @resolution = ] resolution
, [ @xmin = ] xmin
, [ @ymin = ] ymin
, [ @xmax = ] xmax
, [ @ymax = ] ymax
[ , [ @sample = ] sample ]
[ ; ]
Argumente
[ @tabname = ] N'tabname'
Der qualifizierte oder nicht qualifizierte Name der Tabelle, für die der räumliche Index angegeben wird. @tabname ist "sysname" ohne Standard.
Anführungszeichen sind nur dann erforderlich, wenn eine qualifizierte Tabelle angegeben wird. Bei Angabe eines vollqualifizierten Namens, einschließlich eines Datenbanknamens, muss es sich bei dem Datenbanknamen um den Namen der aktuellen Datenbank handeln.
[ @colname = ] N'colname'
Der Name der angegebenen räumlichen Spalte. @colname ist "sysname" ohne Standard.
[ @resolution = ] Auflösung
Die Auflösung des umgebenden Felds. Werte zwischen 10 und 5000 sind gültig. @resolution ist "int" ohne Standard.
[ @xmin = ] xmin
Die X-Minimum-Begrenzungsfeldeigenschaft. @xmin ist "Float" ohne Standard.
[ @ymin = ] ymin
Die Y-Minimum-Begrenzungsfeldeigenschaft. @ymin ist "Float" ohne Standard.
[ @xmax = ] xmax
Die X-Maximum-Begrenzungsfeldeigenschaft. @xmax ist "Float" ohne Standard.
[ @ymax = ] ymax
Die Y-maximale Begrenzungsfeldeigenschaft. @ymax ist "Float" ohne Standard.
[ @sample = ] Beispiel
Der Prozentsatz der verwendeten Tabelle. Gültige Werte liegen zwischen 0 und 100. @sample ist float, mit einem Standardwert von 100
.
Rückgabewerte
Ein Tabellenwert wird zurückgegeben. In der folgenden Tabelle wird der Spalteninhalt der Tabelle beschrieben.
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
cellid |
int | Stellt die eindeutige ID jeder Zelle dar, beginnend mit 1. |
cell |
geometry | Ein rechteckiges Polygon, das jede Zelle darstellt. Die Zellenform ist mit der für die räumliche Indizierung verwendeten Zellenform identisch. |
row_count |
bigint | Gibt die Anzahl räumlicher Objekte an, die die Zelle berühren oder enthalten. |
Berechtigungen
Der Benutzer muss ein Mitglied der Datenbankrolle public sein. Erfordert READ ACCESS
Berechtigungen auf dem Server und dem Objekt.
Hinweise
Die räumliche Registerkarte SQL Server Management Studio (SSMS) zeigt eine grafische Darstellung der Ergebnisse. Sie können die Ergebnisse für das räumliche Fenster abfragen, um die ungefähre Anzahl von Ergebniselementen abzurufen. Objekte in der Tabelle können mehr als eine Zelle abdecken, sodass die Summe der Zellen möglicherweise größer als die Anzahl der tatsächlichen Objekte ist.
Dem Resultset kann eine zusätzliche Zeile hinzugefügt werden, die die Anzahl der Objekte enthält, die sich außerhalb des umgebenden Felds befinden oder den Rahmen des umgebenden Felds berühren. Die cellid
Zeile ist 0
und die cell
Zeile enthält ein LineString
Feld, das das umgebende Feld darstellt. Diese Zeile stellt den gesamten Bereich außerhalb des Begrenzungsrahmens dar.
Beispiele
Im folgenden Beispiel wird eine Beispieltabelle erstellt und anschließend die Tabelle aufgerufen sp_help_spatial_geometry_histogram
. In diesem Beispiel ist die Datenbankkompatibilitätsebene auf 110 festgelegt, kann aber höher sein.
USE AdventureWorksDW2012;
GO
-- Set database compatibility for circular arc segments
ALTER DATABASE AdventureWorksDW2012
SET COMPATIBILITY_LEVEL = 110;
GO
-- Create table to execute sp_help_spatial_geometry_histogram on
CREATE TABLE TownSites (
Location geometry NULL,
SiteName NVARCHAR(50) NULL
)
GO
-- Insert site data into table
DECLARE @g geometry;
SET @g = geometry::Parse('POINT(0 0)');
INSERT INTO TownSites (Location, SiteName)
SELECT @g, N'Booth Map';
SET @g = geometry::Parse('POLYGON((1 1, 1 2, 2 2, 2 1, 1 1))');
INSERT INTO TownSites (Location, SiteName)
SELECT @g, N'Town Hall';
SET @g = geometry::Parse('CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(-1 0, 0 -1, 1 0),(1 0, 1 2, -1 0)))');
INSERT INTO TownSites (Location, SiteName)
SELECT @g, N'Main Park';
SET @g = geometry::Parse('CIRCULARSTRING(1 5, 2 2, 5 1)');
INSERT INTO TownSites (Location, SiteName)
SELECT @g, N'Main Road';
-- Call proc to see data within bounding box
EXEC sp_help_spatial_geometry_histogram
@tabname = TownSites,
@colname = Location,
@resolution = 64,
@xmin = -2,
@ymin = -2,
@xmax = 3,
@ymax = 3,
@sample = 100;
GO
DROP TABLE TownSites;
GO