powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгая вставка в таблицу другой базы данных
25 сообщений из 30, страница 1 из 2
Долгая вставка в таблицу другой базы данных
    #39882452
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Microsoft SQL Server 2014 - 12.0.4100.1 (X64)

На одном сервере есть две базы данных:
- DB1 (COLLATION = Cyrillic_General_BIN)
- DB2 (COLLATION = SQL_Latin1_General_CP1251_CI_AS)

Нужно данные из таблицы TableSrc DB1 залить в таблицу TableRec DB2.
В таблице TableSrc 14 млн записей.
В таблице TableRec нет индексов.

Запускаю sql скрипт на DB1:
Код: sql
1.
2.
3.
4.
5.
DBCC TRACEOFF(610)

insert into DB2.dbo.TableRec WITH(TABLOCK)
select *
from TableSrc

работает около часа

Ради интереса запускаю модифицированный sql скрипт на DB1, который делает все тоже самое только в рамках одной БД:
Код: sql
1.
2.
3.
4.
5.
DBCC TRACEOFF(610)

insert into TableRec WITH(TABLOCK)
select *
from TableSrc

работает около двух минут


Не понимаю почему такая разница.
Можно как то ускорить выполнение первого скрипта?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882453
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980,

Может у вас источник лежит на массиве ssd, а приемник на одиноком hdd?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882455
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опечатался, в обоих скриптах стоит
Код: sql
1.
DBCC TRACENN(610)
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882456
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КритикEvgi1980,

Может у вас источник лежит на массиве ssd, а приемник на одиноком hdd?
нет, обе базы на одном жестком диске
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882460
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какие модели восстановления у обеих баз?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882462
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая модель восстановления в базах?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882463
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980Не понимаю почему такая разница.1. Сравните определения таблиц (точно, включая всякие "опции", и наличие триггеров, не считайте какую то мелочь несущественной)
2. Сравните параметры авторасширения файлов у баз
3. Сравните модель логирования.
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882464
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980,

И их логи тоже?
Модели восстановления одинаковы?

А запрос

Use DB2
Go

insert into dbo.TableRec WITH(TABLOCK)
select *
from db1..TableSrc

работает долго или быстро?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882465
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980опечаталсяРаз "опечатался", то, наверное, и скрипты не такие, раз вы их не копировали, а набирали?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882466
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и проще всего сравнить планы, может там действительно триггеры или еще что.
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882508
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Свойства БД источника: https://i.imgur.com/JuXFyGg.png
Свойства БД приемника: https://i.imgur.com/54mejVw.png

В первом посте именно опечатка, потому что набирал от руки, конечно же стоит DBCC TRACEON(610).
Модели восстановления простые на обеих базах.
Триггеров, индексов и т.д. на таблице приемника нет (таблица свежесозданная).
Планы запросов одинаковые:
план запроса 1: https://i.imgur.com/hZF40qE.png
план запроса 2: https://i.imgur.com/JZFRGqk.png
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882509
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КритикEvgi1980,

И их логи тоже?
Модели восстановления одинаковы?

А запрос

Use DB2
Go

insert into dbo.TableRec WITH(TABLOCK)
select *
from db1..TableSrc

работает долго или быстро?
так тоже пробовал, выполняется долго
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882510
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvgEvgi1980Не понимаю почему такая разница.1. Сравните определения таблиц (точно, включая всякие "опции", и наличие триггеров, не считайте какую то мелочь несущественной)
2. Сравните параметры авторасширения файлов у баз
3. Сравните модель логирования.
Где это можно посмотреть?
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882512
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg2. Сравните параметры авторасширения файлов у баз
у источника:
база: с шагом 1мб без ограничений
лог: с шагом 100 мб до 20971152 мб

у приемника:
база: с шагом 1мб без ограничений
лог: с шагом 10% без ограничений
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882513
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882516
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
завтра попробую перетащить таблицу источник на DB2 и сделать копирование в таблицу приемник этой же базы.
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882518
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980alexeyvg2. Сравните параметры авторасширения файлов у баз
у источника:
база: с шагом 1мб без ограничений
лог: с шагом 100 мб до 20971152 мб

у приемника:
база: с шагом 1мб без ограничений
лог: с шагом 10% без ограниченийВозможно, у одной базы было мало свободного места, и серверу пришлось 14 раз выполнить увеличение файла, с разметкой структуры. К тому же база получилась фрагментированной.

Вообще, параметры установлены ужасные.

Evgi1980alexeyvgпропущено...
1. Сравните определения таблиц (точно, включая всякие "опции", и наличие триггеров, не считайте какую то мелочь несущественной)
2. Сравните параметры авторасширения файлов у баз
3. Сравните модель логирования.
Где это можно посмотреть?1 - сделать скрипты обоих таблиц, в SSMS. Только нужно выставить в опциях параметры, что бы скриптовались индексы, и прочее, а не только поля.

3 - посмотреть свойства базы, options -> recovery model
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882522
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980Свойства БД источника: https://i.imgur.com/JuXFyGg.png
Свойства БД приемника: https://i.imgur.com/54mejVw.png Прикольно, установлен параметр автошринк :-)

И есть же ещё одно большое отличие - у второй базы установлен уровень совместимости 2008 R2
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882564
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot alexeyvg]Evgi1980Вообще, параметры установлены ужасные.
Посоветуйте пжл какие параметры какими значениями лучше установить
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882597
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980Посоветуйте пжл какие параметры какими значениями лучше установитьДля источника сделать приращение файла данных 1 Гб, для приёмника 100 Мб
Приращение файла лога можно оставить как есть.
Вообще, нужно учитывать все особенности конкретной системы, но грубо, исходя из размеров, можно установить так.
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882599
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgi1980Посоветуйте пжлИ автошринк у базы-приёмника уберите, он только навредит.
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882605
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgДля источника сделать приращение файла данных 1 Гб, для приёмника 100 Мб

может, у него вся база целиком меньше гигабайта,
куда же такое приращение?

Evgi1980, размер базы огласите
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882609
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123Evgi1980, размер базы огласите
в виде резултьтата exec sys.sp_spaceused
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882617
Evgi1980
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ради эксперимента в базе данных приемника (DB2) поставил увеличение приращения файла данных 1 Гб, стало работать 2 мин

Всем спасибо за помощь! :)
...
Рейтинг: 0 / 0
Долгая вставка в таблицу другой базы данных
    #39882683
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123может, у него вся база целиком меньше гигабайта,
куда же такое приращение?

Evgi1980, размер базы огласитеНа картинках видно, 28 и 2 Гб для первой и второй базы
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгая вставка в таблицу другой базы данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]