Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Долгая вставка в таблицу другой базы данных / 25 сообщений из 30, страница 1 из 2
28.10.2019, 19:40
    #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
28.10.2019, 19:42
    #39882453
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая вставка в таблицу другой базы данных
Evgi1980,

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

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

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

А запрос

Use DB2
Go

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

работает долго или быстро?
...
Рейтинг: 0 / 0
28.10.2019, 19:59
    #39882465
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая вставка в таблицу другой базы данных
Evgi1980опечаталсяРаз "опечатался", то, наверное, и скрипты не такие, раз вы их не копировали, а набирали?
...
Рейтинг: 0 / 0
28.10.2019, 19:59
    #39882466
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая вставка в таблицу другой базы данных
Ну и проще всего сравнить планы, может там действительно триггеры или еще что.
...
Рейтинг: 0 / 0
29.10.2019, 00:04
    #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
29.10.2019, 00:09
    #39882509
Evgi1980
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Долгая вставка в таблицу другой базы данных
КритикEvgi1980,

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

А запрос

Use DB2
Go

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

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

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

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

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

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

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

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

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

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

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

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


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