sp_help_spatial_geometry_histogram (Transact-SQL)

Упрощает задание значений параметров ограничивающего прямоугольника и сетки для пространственного индекса.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2012 до текущей версии).

Синтаксис

sp_help_spatial_geometry_histogram [ @tabname =] 'tabname' 
     [ , [ @colname = ] 'columnname' ] 
     [ , [ @resolution = ] 'resolution' ]
     [ , [ @xmin = ] 'minx' ] 
     [ , [ @ymin = ] 'miny' ] 
     [ ,.[ @xmax = ] 'maxx' ]
     [ , [ @ymax = ] 'maxy' ]
     [ , [ @sample = ] 'sample' ]

Аргументы

  • [ @tabname =] 'tabname'
    Полное или неполное имя определенной таблицы, для которой был указан пространственный индекс.

    Кавычки требуются, только если определяется уточненная таблица. Если предоставлено полное имя таблицы, включая имя базы данных, в качестве последнего должно использоваться имя текущей базы данных. Аргумент tabname имеет тип sysname и не имеет значения по умолчанию.

  • [ @colname = ] 'colname'
    Имя указанного пространственного столбца. Аргумент colname имеет тип sysname и не имеет значения по умолчанию.

  • [ @resolution = ] 'resolution'
    Разрешение ограничивающего прямоугольника. Допустимы значения в диапазоне от 10 до 5 000. Аргумент resolution имеет тип tinyint и не имеет значения по умолчанию.

  • [ @xmin = ] 'xmin'
    Минимальная координата по оси X для ограничивающего прямоугольника. Аргумент xmin имеет тип float и не имеет значения по умолчанию.

  • [ @ymin = ] 'ymin'
    Минимальная координата по оси Y для ограничивающего прямоугольника. Аргумент ymin имеет тип float и не имеет значения по умолчанию.

  • [ @xmax = ] 'xmax'
    Максимальная координата по оси X для ограничивающего прямоугольника. Аргумент xmax имеет тип float и не имеет значения по умолчанию.

  • [ @ymax = ] 'ymax'
    Максимальная координата по оси Y для ограничивающего прямоугольника. Аргумент ymax имеет тип float и не имеет значения по умолчанию.

  • [ @sample = ] 'sample'
    Используемая область таблицы (в процентах). Допустимые значения: от 0 до 100. sample имеет тип float. По умолчанию установлено значение 100.

Значение свойства/возвращаемое значение

Возвращает табличное значение. В следующей сетке описывается содержимое столбцов таблицы.

Имя столбца

Тип данных

Описание

cellid

int

Представляет собой уникальный идентификатор каждой ячейки, перечисление начинается с 1.

cell

geometry

Прямоугольный многоугольник, представляющий каждую ячейку. Форма ячеек идентична форме ячеек, используемой при пространственном индексировании.

row_count

bigint

Указывает количество пространственных объектов, которые ограничивают или содержат ячейку.

Разрешения

Пользователь должен быть членом роли public. Необходимо разрешение READ ACCESS на сервере и объекте.

Замечания

В пространственной таблице среды SSMS отображается графическое представление результатов. Можно повторно отправить запрос результатов с использованием пространственного окна для определения приблизительного количества элементов результатов. Объекты в таблице могут занимать более одной ячейки, поэтому сумма количества ячеек может быть больше числа фактических объектов.

В результирующий набор, в котором указано число объектов, находящихся за пределами ограничивающего прямоугольника или касающихся его, можно добавить дополнительную строку. Идентификатор cellid этой строки равен 0, а аргумент cell этой строки содержит LineString, который представляет ограничивающий прямоугольник. Эта строка представляет все пространство за пределами ограничивающего прямоугольника.

Примеры

В следующем примере создается таблица и затем для нее вызывается процедура sp_help_spatial_geometry_histogram.

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

См. также

Другие ресурсы

Хранимые процедуры пространственного индекса (Transact-SQL)