
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.08.2018, 12:36
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Имеется у меня вполне рабочая модель данных, которая отлично работает при ручном вводе пользователем. Но попробовал я провести экспорт из Акцеса через эту модель и обнаружил крайне неприятный баг. С увеличением количества данных в базе на сервере, катастрофически падает скорость импорта. Весь ввод данных в БД у меня реализован через хранимки которые я уже только-что не вылизал для оптимизации и не могу понять в чем причина такого зверского замедления работы. Для примера, исходная база содержащая 50 тыс строк, разносится на 300 тыс. разных объектов в базе и все это длится почти сутки! Это же просто пипец какой-то. Сейчас гоняю разные варианты с первой тысячей строк из исходной БД. Пока нет существенного прорыва в скорости. Пробовал подключать через натив клиента и через адо, принципиальной разницы в скорости импорта не заметил, но вот то что установка свойства CursorLocation в ServerLocation дало не прирост скорости, а очень существенное замедление - стало неожиданным. В общем жду хоть каких-то идей, куда копать еще. Система Win10 на i7 c 8 Гб памяти. MS SQL 2017. При всех тестах загрузка памяти не превышает 55% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 12:42
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Копать в сторону плана запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 12:49
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
СтрадалецъВесь ввод данных в БД у меня реализован через хранимки Страдалецъустановка свойства CursorLocation в ServerLocation Ты сам себе противоречишь. Хранимки, конечно, могут порождать курсоры, но не те, которые вводят данные и "вылизаны". Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 12:50
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Страдалецъ, попробуйте весь импорт разбить на крупные транзакции (или всё в одну): Begin Transaction .... Commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 13:06
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
План исполнения - в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 13:29
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Кроик Семён, Возможно вы и правы. Действительно, попробую делать порционные, скажем по 10 пачек объектов в одну транзакцию. Сейчас я вообще без явных указаний транзакций пытаюсь лить в базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 13:43
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
О да! Как же я раньше то не догадался о транзакциях. После разбиения на порции все стало существенно лучше заливаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 14:05
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
СтрадалецъО да! Как же я раньше то не догадался о транзакциях. После разбиения на порции все стало существенно лучше заливаться. MS SQL щики... (:. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 14:29
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Переложите проблему импорта на сам SQL сервер, bcp например или скажем IRowsetFastLoad поддержка которого есть в sdac у девартов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 14:55
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Страдалецъ...После разбиения на порции все стало существенно лучше заливаться. Так до плана запросов и не дошло. Видно в следующий раз :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 17:16
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
План - это сильно сказано. Все хранимки выполнены по одному шаблону простой селект и такой-же простой инсерт, но в процессе импорта на каждый пакет данных приходится в среднем по 2 десятка вызовов хранимок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2018, 18:08
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
СтрадалецъВсе хранимки выполнены по одному шаблону простой селект и такой-же простой инсерт А select-то там зачем? И ты не поверишь, но у этого "простого select" тоже есть план и он не всегда такой, как ты думаешь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.08.2018, 09:20
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Зачитать импорт в спец. таблицу и уже потом разобрать ее сложными процедурами. Может выйти заметно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.08.2018, 11:55
|
|||
|---|---|---|---|
|
|||
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Нашел я в чем у меня была основная проблема замедления. Все оказалось до смешного просто - для обновления датасета в приложении используется Requery, но при импорте я отключаю с помощью флага эту инструкцию. Оказалось, что в одном месте я этот флаг не поставил и в итоге, чем больше данных в БД, тем длительнее Requery, но тем не менее подсказка с транзакциями была удачна и значит не зря тему завел. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.09.2018, 12:46
|
|||
|---|---|---|---|
Проблема скорости экспорта в MSSQL средствами Delphi |
|||
|
#18+
Страдалецъ, Вот же ж блин, а я думал всю диагностику в Profiler сделали, а оно вон оно как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&tablet=1&tid=2040447]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 491ms |

| 0 / 0 |
