|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Есть таблица физическая и временная Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
План запроса у них один, почему вставка во временную таблицу быстрее, из-за статистики или из-за записи на диск? Если вставку в физ таблицу сделать с помощью транзакции, скорость получаем похожую при вставки во временную Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 00:24 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha, модель восстановления в базе какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 02:51 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha Если вставку в физ таблицу сделать с помощью транзакции, скорость получаем похожую при вставки во временную При коммите транзакции выполнение продолжается после физической записи лога на диск (точнее, когда контроллер скажет, что запись в лог состоялась). Соответственно, без общей транзакции будет ожидание на каждую записанную строку. А при записи во временную таблицу запись в лог кешируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 08:43 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
felix_ff Focha, модель восстановления в базе какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 08:44 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
alexeyvg Focha Если вставку в физ таблицу сделать с помощью транзакции, скорость получаем похожую при вставки во временную При коммите транзакции выполнение продолжается после физической записи лога на диск (точнее, когда контроллер скажет, что запись в лог состоялась). Соответственно, без общей транзакции будет ожидание на каждую записанную строку. А при записи во временную таблицу запись в лог кешируется. Логи отключить можно как-то на конкретную схему? БД не OLTP, да и вообще используется для расчетов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 08:55 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha, ALTER DATABASE ... SET DELAYED_DURABILITY = FORCED ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 09:43 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha, Ваш скрипт выполняется в режиме autocommit. Т.е. каждый insert - отдельная транзакция. В обычной БД по commit происходит сброс буфера ЖТ на диск. Но tempdb - специальная БД и в ней по coommit ничего на диск не сбрасывается. Отсюда и разница в скорости. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 09:48 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
архивариус Focha, ALTER DATABASE ... SET DELAYED_DURABILITY = FORCED спасибо, да теперь вставка в физическую таблицу ускорилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 09:48 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha архивариус Focha, ALTER DATABASE ... SET DELAYED_DURABILITY = FORCED спасибо, да теперь вставка в физическую таблицу ускорилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 11:21 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
авторSET DELAYED_DURABILITY = FORCED Сурово! Надеюсь, база маловажная? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 13:15 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
alexeyvg Что, прям на проде? :-) Владислав Колосов Сурово! Надеюсь, база маловажная? Пользователи загружают данные из Экселей и потом запускают расчет и получают результат. Если сервер отключится, заново загрузят. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 17:04 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha, в таком случае, если позволяют ресурсы памяти, можно использовать InMemory таблицы с durability = schema_only, вставка будет ещё быстрее. Такие таблицы в журнал ничего не пишут. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 18:46 |
|
При вставки строк в таблицы dbo.table VS #table
|
|||
---|---|---|---|
#18+
Focha alexeyvgЧто, прям на проде? :-) Focha Если сервер отключится, заново загрузят. Тогда да, установить SET DELAYED_DURABILITY = FORCED - хорошее решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2021, 21:58 |
|
|
start [/forum/topic.php?fid=46&msg=40062919&tid=1684817]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 151ms |
0 / 0 |