Параметры хранения Oracle Spatial DBTUNE
Таблица DBTUNE содержит некоторые параметры хранения, являющиеся специфическими для Oracle Spatial. Они описаны в следующем разделе.
Создание классов объектов Oracle Spatial
Для создания класса объектов, использующих тип хранения SDO_GEOMETRY, укажите ключевое слово конфигурации, содержащее параметр GEOMETRY_STORAGE, для которого установлено значение SDO_GEOMETRY. В следующем разделе приводятся некоторые примеры. Более подробно см. Как ArcSDE использует Oracle Spatial? (How does ArcSDE use Oracle Spatial?).
Два других параметра влияют на хранение объектов SDO_GEOMETRY: SDO_ORDINATES_VARRAY_STORAGE и SDO_ELEM_INFO_VARRAY_STORAGE. Оба добавляются в выражение хранения varray для CREATE TABLE. SDO_ORDINATES_VARRAY_STORAGE определяет хранение SDO_ORDINATES_VARRAY части объекта SDO_GEOMETRY. SDO_ELEM_INFO_VARRAY_STORAGE определяет хранение SDO_ELEM_INFO_VARRAY части объекта SDO_GEOMETRY.
Если созданный вами класс объектов Oracle Spatial хранит данные аннотаций CAD или ArcSDE, к базовой таблице класса объектов добавляется столбец SE_ANNO_CAD_DATA для информации данного типа. Вы можете указать параметр SE_ANNOCAD_LOB_STORAGE для определения хранения этого столбца. Значение этого параметра добавляется в выражение LOB для CREATE TABLE, которое используется в Oracle при создании класса пространственных объектов.
Пример групп параметров DBTUNE у классов пространственных объектов Oracle Spatial
В данном разделе содержатся группы параметров DBTUNE, примененных к нескольким наиболее типичным сценариям. (Помните, параметры сгруппированы по ключевым словам конфигурации.) Эти примеры содержат параметры хранения для классов пространственных объектов Oracle Spatial.
Oracle и Esri рекомендуют использование пространственных индексов R-деревьев для хранения SDO_GEOMETRY. В некоторых примерах вы увидите параметр sdo_indx_dims=2, который определяет количество индексируемых измерений пространственными индексами R-дерева.
Если вы не используете по умолчанию Oracle Spatial, вы сможете использовать существующее ключевое слово SDO_GEOMETRY, либо создать вашу собственную группу параметров для создания классов пространственных объектов Oracle Spatial с основными настройками. Таблицы и индексы генерируются в пользовательской табличной области с помощью параметров хранения по умолчанию, если другое не установлено в группе параметров DEFAULTS. Пространственный индекс – это двухмерное R-дерево.
##SDO_GEOMETRY GEOMETRY_STORAGE "SDO_GEOMETRY" SDO_INDEX_SHAPE "sdo_indx_dims=2" UI_TEXT "Oracle Spatial: default settings" END
С помощью Oracle Spatial, если данные обычно загружаются с использованием определенного идентификатора пространственной привязки (SRID), например, SRID 8307 (широта-долгота WGS84), вы можете создать расширенную версию предыдущей группы параметров. Вам не обязательно указывать верхнюю,нижнюю границы и допуск, но при желании вы можете это сделать, если вы хотите, чтобы ваши классы пространственных объектов имели одинаковые метаданные для x и y измерений.

Для геодезических данных экстенты указываются в десятичных градусах, а допуски – в метрах.
##SDO_GEOMETRY_8307 GEOMETRY_STORAGE "SDO_GEOMETRY" SDO_INDEX_SHAPE "sdo_indx_dims=2" SDO_SRID 8307 SDO_DIMNAME_1 "Lon" SDO_LB_1 -180.000000 SDO_UB_1 180.000000 SDO_TOLERANCE_1 0.05 SDO_DIMNAME_2 "Lat" SDO_LB_2 -90.000000 SDO_UB_2 90.000000 SDO_TOLERANCE_2 0.05 UI_TEXT "Oracle Spatial: WGS84" END
Следующий пример может использоваться для загрузки класса пространственных объектов с индексом R-дерева в табличную область ORSPBIZ. Пространственный индекс R-дерева будет создан в табличной области ORSPIDX. Клиент ArcSDE, загружающий данные, определяет значения для метаданных.
##SDO_GEOMETRY_ORSPBIZ GEOMETRY_STORAGE "SDO_GEOMETRY" B_STORAGE "TABLESPACE ORSPBIZ" SDO_INDEX_SHAPE "tablespace=ORSPIDX sdo_indx_dims=2" UI_TEXT "Tablespace ORSPBIZ / ORSPIDX" END
При разработке собственных групп параметров вам может понадобиться добавить параметры для поддержки других конструкции баз геоданных, таких как геометрические сети, топологии и поверхности terrain. Вы также можете добиться соответствия этим параметрам, указав их в группе DEFAULTS.
Например, если параметр GEOMETRY_STORAGE ключевого слова DEFAULTS установлен как SDO_GEOMETRY при создании топологий, сетей или поверхностей terrain, для них используются составные ключевые слова. Поскольку ключевые слова по умолчанию не содержат GEOMETRY_STORAGE, будет использовано DEFAULTS GEOMETRY_STORAGE. В этом случае, это будет SDO_GEOMETRY.
Если вместо ключевого слова DEFAULTS в качестве GEOMETRY_STORAGE указано не SDO_GEOMETRY, а вы собираетесь создавать, к примеру, поверхность terrain, использующую хранение SDO_GEOMETRY, вам необходимо создать новый набор ключевых слов terrain для хранения terrain с SDO_GEOMETRY. Ниже показан соответствующий пример:
##TERRAIN_SDO UI_TERRAIN_TEXT "The terrain default configuration" GEOMETRY_STORAGE "SDO_GEOMETRY" B_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc" B_INDEX_ROWID "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_SHAPE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_USER "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" END ##TERRAIN_SDO::EMBEDDED GEOMETRY_STORAGE "SDO_GEOMETRY" B_STORAGE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc" B_INDEX_ROWID "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_SHAPE "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" B_INDEX_USER "PCTFREE 0 INITRANS 4 TABLESPACE ter_tblspc NOLOGGING" END
Дополнительную информацию см. в раздел Составные ключевые слова и хранилище геометрии.
Создание метаданных Oracle Spatial для новых классов пространственных объектов
Вид базы данных Oracle Spatial USER_SDO_GEOM_METADATA содержит метаданные о столбцах SDO_GEOMETRY существующих таблиц. Каждый пользователь имеет собственный вид USER_SDO_GEOM_METADATA. Для индексирования и построения запросов пользователю таблицы нужно записать метаданные для каждого столбца SDO_GEOMETRY в USER_SDO_GEOM_METADATA. При создании класса пространственных объектов в клиентском приложении ArcGIS выберите ключевое слово конфигурации, содержащее следующие параметры, которые определяют метаданные для новых классов объектов SDO_GEOMETRY:
SDO_DIMNAME_<n> SDO_LB_<n> SDO_UB_<n> SDO_TOLERANCE_<n> SDO_SRID
<n> в первых четырех параметрах отражает измерение, для которого вы планируете применять параметр. Oracle Spatial допускает геометрии в комбинациях x,y; x,y,z; x,y,m (измерение); x,y,z,m. Поэтому измените <n> в именах параметра одним из чисел – 1, 2, 3 или 4:
1 | 2 | 3 | 4 |
---|---|---|---|
x | y | ||
x | y | z | |
x | y | М | |
x | y | z | М |
Если вы не укажете эти параметры хранения, клиентское приложение ArcGIS, создающее класс пространственных объектов, подсчитает верхнюю и левую границу (экстент) и допуск в каждом измерении.

В дополнении к вышеуказанным комбинациям Oracle Spatial также поддерживает геометрии объектов x,y,m,z. Однако не используйте их с классами объектов SDO_GEOMETRY в базах геоданных.
Если указанное во время создания класса объектов ключевое слово конфигурации содержит установленную для параметра SDO_SRID допустимую систему координат, используется значение SDO_SRID и записывается в вид USER_SDO_GEOM_METADATA, даже если клиентом выбрана другая система координат.
Создание пространственного индекса
Параметр DBTUNE SDO_INDEX_SHAPE определяет, как Oracle Spatial создает пространственный индекс. ArcSDE дописывает содержание этого параметра (строка конфигурации) в выражение CREATE INDEX перед отправкой выражения в Oracle. Ключевое слово конфигурации вставляется в выражение SQL после ключевого слова PARAMETERS. Например:
CREATE INDEX MY_SP_INDEX ON MY_SP_TABLE(SHAPE)
INDEXTYPE IS MDSYS.SPATIAL_INDEX PARAMETERS ( <configuration string is inserted here> );
Конфигурационная строка – взятая в кавычки строка, содержащая список элементов вида "параметр = значение". Есть несколько параметров, которые можно указывать в строке конфигурации. Для понимания параметров индекса Oracle Spatial и того, как они взаимодействуют, прочтите соответствующие разделы Руководства пользователя Oracle Spatial (Oracle Spatial User's Guide and Reference).
Обратите внимание на различия между физически хранимыми параметрами в строке конфигурации пространственного индекса и в строке конфигурации бизнес-таблицы (как указано в параметре B_STORAGE parameter). Единственное различие заключается в способе появления этих параметров в выражениях SQL. Выражения Oracle форматируются по-разному, поэтому строки конфигурации форматируются различным образом. Кроме того, не каждый хранимый параметр, используемый для создания таблиц, доступен для построения пространственных индексов.
B_STORAGE "TABLESPACE ORSPBIZ PCTFREE 10 INITRANS 4 STORAGE(INITIAL 512000)" SDO_INDEX_SHAPE "tablespace=ORSPIDX initial=512000"
Создание наборов растровых данных и каталогов, использующих хранилище SDO_GEORASTER
Oracle Spatial имеет следующее хранилище растрового типа: SDO_GEORASTER. Есть три параметра, влияющих на хранилище SDO_GEORASTER в базе геоданных:
- RASTER_STORAGE, который можно установить для указания на то, что растры были созданы с помощью хранилища типа SDO_GEORASTER.
- RDT_STORAGE, определяющий информацию о хранилище для таблицы блокировок SDO_GEORASTER SDE_RDT_<N>. N – значение rastercolumn_id для столбца растра.
- RDT_INDEX_COMPOSITE, определяющий информацию о хранилище для составного индекса, созданного в таблице блокировок SDO_GEORASTER SDE_RDT_<N>_PK. N – значение rastercolumn_id для столбца растра.
Для получения подробной информации об использовании типа SDO_GEORASTER обратитесь к разделу Типы растров Oracle Spatial и ArcSDE (ArcSDE and the Oracle Spatial raster type).