Параметры хранения 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 в базе геоданных:

Для получения подробной информации об использовании типа SDO_GEORASTER обратитесь к разделу Типы растров Oracle Spatial и ArcSDE (ArcSDE and the Oracle Spatial raster type).

5/10/2014