PostGIS vs. ArcSDE: Тест ArcSDE

ArcSDE тестировали на этой же машине и с тем же набором данных (см. тест PostGIS). Перед тестом диски были отформатированы, система восстановлена из образа. Т.к. подружить самостоятельно  собранный PostgreSQL 8.3.7 с ArcSDE мне не удалось, тестировал на комплектном PostgreSQL 8.3.0 + ArcGIS 9.3 SP1 (build 1850) + ArcSDE 9.3.

Как и в случае в PostGIS, кластер БД располагался с отдельном 80 Гб диске. Для чистоты эксперимента, оригинальное изображение в формате MrSID заново сконвертировал в ERDAS IMAGINE средствами ArcGIS. Загрузка и все остальные операции проводились не через ArcCatalog, a посредством Python-скриптов, благо ArcGIS это позволяет.

Конвертация выполнялась скриптом:

import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.CopyRaster_management("N-38-45.sid","N-38-45.img","#","0","#","NONE","NONE","#")

и заняла 1202 с (~20 мин.), результирующий файл получился тех же размеров, что и при использовании gdal_translate, т.е. ~4.7 Гб. Теперь строим пирамиды

import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.BuildPyramids_management("N-38-45.img")

На пирамиды ушло аж 451 с (~7 мин.) Прежде чем заливать растр в базу, нужно создать RasterDataset:

import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.CreateRasterDataset_management("Database Connections/raster.sde","N_38_45","14.25","8_BIT_UNSIGNED","#",3,"#","PYRAMIDS -1 CUBIC","128 128","LZ77","#")

На эту операцию ушло ровно 2 секунды :-). Время настолько мало, что им можно принебречь. Теперь в созданный dataset загружаем растр:

import arcgisscripting
gp = arcgisscritpting.create()
gp.toolbox = "management"
gp.workspace = "d:\raster"
gp.CreateRasterDataset_management("N-38-45.img","Database Connections/raster.sde","LAST","FIRST","0","#","NONE","0","NONE")

Процесс загрузки прошел достаточно быстро, всего 1337 с (~22 мин.). После загрузки растра кластер БД вырос в размере с 42 495 444 байта (~40.5 Мб) до 6 934 776 988 байт (~6.45 Гб).