Сторінка 1 з 2

Слиття баз SQL 2008

Додано: 05 січня 2015, 18:10
Vetaley
Доброе время суток, Уважаемые!
Так уж вышло, что общая база ГИС на предприятии поделена на отдельные (по районам), всего 30шт (SQL 2008). В каждой от 50 000 до нескольких сот участков.
Суть вопроса такова: можно ли объеденить их прямо в среде SQL Server Management Studio или только через импорт/экспорт?
Второй метод мне ясен, но очччень уж он по времени затратен и хлопотен. Спасибо!

Re: Слияние баз SQL 2008

Додано: 06 січня 2015, 09:27
NickS
Vetaley писав:Суть вопроса такова: можно ли объеденить их прямо в среде SQL Server Management Studio или только через импорт/экспорт?
Второй метод мне ясен, но очччень уж он по времени затратен и хлопотен. Спасибо!

Нет, к сожалению, это сделать другим способом как не через "импорт/экспорт" не возможно! Ведь все таблицы связаны идентификаторами, которые назначает сам SQL-сервер для каждой базы. Они для разных баз могут повторяться. Потому, даже если Вы объедините во всех базах какую-то таблицу, Вы потеряете связи с ней. По сути, это будет уже не база, а просто хлам. Потому, надо использовать "импорт/экспорт", который не только дополняет таблицы, но и сохраняет все связи, назначая другие идентификаторы (потому и так долго происходит данная операция). А что ж Вы хотели? С большими объемами нельзя работать быстро - чудес не бывает. :)

Re: Слияние баз SQL 2008

Додано: 07 січня 2015, 10:38
Vetaley
"Говорят под Новый Год..." ;) придецца подежурить

Re: Слияние баз SQL 2008

Додано: 13 січня 2015, 11:39
Vetaley
Начались проблемачьки’с:
Зображення
Базочка 15 000 участков. На С: 4гБ свободно. В чем могет быть дело?

Re: Слияние баз SQL 2008

Додано: 13 січня 2015, 12:08
feNICKs
Дело не в БД или программе. Проблема в глюке BDE-модуля винды. Это распространенная ошибка, которую может выдать BDE-модуль.
Если по умному
BDE (вернее, IDAPI32.DLL) использует тип DWORD при определении размера свободного места на жестком диске. Какой-бы размер Windows не вернул, с этого значения берутся только 4 младших байта, поэтому, если размер свободного места на диске кратен 4294967295, то BDE считает, что свободного места вообще нет и выдает указанную ошибку.

Если проще, измените размер свободного места на диске С:\, чтоб размер не был кратным 4 т.е. скопируйте на диск какай-то файл, чтоб размер свободного места уменьшился, перезапустите ГИС6 и повторите загрузку БД с архива.
Я лично с таким не сталкивался, но в большинстве случаев должно помочь.

Re: Слияние баз SQL 2008

Додано: 13 січня 2015, 13:28
Vetaley
Сейчас пакую на другой локальный... 40% и идет (тьфу-тьфу...))), но спасибо! Будем иметь ввиду.

Re: Слияние баз SQL 2008

Додано: 13 січня 2015, 13:40
NickS
Vetaley писав:Сейчас пакую на другой локальный... 40% и идет (тьфу-тьфу...))), но спасибо! Будем иметь ввиду.

На будущее, когда создаёте архив участков и их очень много, лучше разбить их по группам и экспортировать по очереди. В таком случае не придётся всё делать по новому, если произойдёт ошибка или отключиться компьютер (по разным причинам).

Re: Слияние баз SQL 2008

Додано: 13 січня 2015, 14:06
Vetaley
46% таж фигня. Что, по кускам делать?
ТЫ-ДЫЩ! :shock:

Re: Слияние баз SQL 2008

Додано: 13 січня 2015, 16:51
feNICKs
Изменение размера свободного места на диске не помогло?
Мне кажется, что если даже "упаковать" на другой ПК, то проблема вряд ли исчезнет, т.к. перед архивированием, "исходный набор данных" все таки формируется и храниться на Вашем ПК, а уже в после окончания формирования, он архивируется и переноситься на другой ПК.

Попробуйте загрузить на другом ПК ГИс 6 с текущей БД и уже там формировать архив.

Re: Слияние баз SQL 2008

Додано: 15 січня 2015, 15:17
Vetaley
Ok. Так и сделал. Запустил экспорт непосредственно на сервере (Win 7). На 99% процесс завершился сообщением об ошибке "Table is full". Методом научного тыка выяснилось, что не желает экспортироваться конкретный участок, причем вполне себе заурядный на 5 точек с 1м угодием но созданный самолично (не путем импорта). Когда-то всплывала схожая проблема, но по причине нехватки времени на разбор, была устранена путем переноса участка в формате хмеля. Сейчас есть время и желание докопаться до причин. Есть версии?
P.S. При попытке экспортировать именно этот участок ГИС тупо виснет и всьо(((
P.P.S. Постепенно выявляю еще аналогичные участки. Исключительно по зависанию системы(((
P.P.P.S. Если прождать достаточно долго, то можно дождаться ошибку "Table is full")))