Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Конвертирование БД1 -> БД2
|
|||
|---|---|---|---|
|
#18+
Приветствую! Конвертирование импортируемых в БД данных происходит слишком медленно. Количество первичных таблиц (CSV), откуда я беру данные - 7 шт. Кол-во записей: 51125/79380/370 и по мелочи. Количество конечных таблиц, куда я должен засунуть данные - 14 шт. После того, как я понял, что курсоры - это полная лажа, я стал использовать скрипт с предложениями групповой выборки INSERT и UPDATE, добавления и изменения данных. Пришлось использовать порядка 10 временных таблиц. Сейчас приблема состоит в том, что запросы - со сложными условиями, и, хотя план выполнения приемлемый, то на определенном этапе транзакции процесс замирает... насколько даже не знаю, больше 20 мин я не ждал. В связи с этим у меня 2 вопроса: 1. почему внутри транзакции процесс "замирает"? 2. Организовать импорт по-другому - есть несколько вариантов: - использовать некий алгоритм (на друком языке) непосредственно при импорте данных, что мне не совсем понятно, как; - есть еще интересный вариант, который я хотел бы попробовать: это использование триггера, который будет срабатывать при добавлении импортируемых данных в предварительные таблицы. Но я хотел бы поговорить с кем-нибудь перед тем, как пробовать, т. к. время поджимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2001, 11:33 |
|
||
|
Конвертирование БД1 -> БД2
|
|||
|---|---|---|---|
|
#18+
Не понял что такое первичные таблицы, а что такое конечные, да и вобще не понял задачи С таким количеством записей, запросы не должны так долго выполняться, deadlock-и проверяли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2001, 11:38 |
|
||
|
Конвертирование БД1 -> БД2
|
|||
|---|---|---|---|
|
#18+
Первичные таблицы - те, откуда импортируются данные. Конечные - куда они импортируются. Задача: Книги из разных агенств собираю в одной БД. Прежде чем добавлять информацию какого-либо агенства, я ее импортирую в специально отведенную для этого агенства отдельную БД, после чего переношу их в главную БД. Dealock'ов не было. Вопрос: 1. почему внутри транзакции запросы выполняются медленнее, чем тогда, когда не открываешь транзакцию? Может отчасти в этом кроется ответ на то, что выполнение скрипта замедляется по мере его выполнения? 2. можно ли и целесообразно ли пользоваться задачей импорта/экспорта в EM и можно ли там использовать временные таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2001, 12:38 |
|
||
|
Конвертирование БД1 -> БД2
|
|||
|---|---|---|---|
|
#18+
А не пробовали, вместо импортирования в специальные БД, просто написать DTS пакет, который писал бы данные сразу в соновную, с его помощью много чего делать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2001, 13:14 |
|
||
|
Конвертирование БД1 -> БД2
|
|||
|---|---|---|---|
|
#18+
2Genady: Спасибо! Сейчас буду пробовать. Скажите, а при выполнении DTS пакета ведутся логи? Если нет - то это ускорит процесс. И что с его помощью можно еще сделать? В скорости я выиграю? 2All: тут в форуме прочитал, что в SQL2000 есть возможность создавать врем. таблицы, которые будут находиться в RAM. Так ли это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2001, 13:27 |
|
||
|
Конвертирование БД1 -> БД2
|
|||
|---|---|---|---|
|
#18+
>Скажите, а при выполнении DTS пакета ведутся логи? Если нет - то это ускорит процесс. Какие логи? Делаются ли записи в журнале транзакций? Думаю да, насколько я знаю вжурнале транзакций не отражаются операции bulk copy. Выиграете ли Вы в скорости не знаю, описывать все возможности DTS лень, много их, да я и не все знаю, потому что практически им не пользуюсь. >тут в форуме прочитал, что в SQL2000 есть возможность создавать врем. таблицы, которые будут находиться в RAM. Так ли это? временные таблицы вне зависимости от версии сервера создаются в базе tempdb, после чего таблица размещается в буфере, т. е в RAM, в SQL 2000 еще есть переменная типа table вероятно она сразу размещается в памяти, но конечно, если ворочается много данных, понятно что без дисковых операций не обойдется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2001, 14:17 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32006178&tid=1826698]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 369ms |

| 0 / 0 |
