powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема скорости экспорта в MSSQL средствами Delphi
16 сообщений из 16, страница 1 из 1
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694244
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется у меня вполне рабочая модель данных, которая отлично работает при ручном вводе пользователем. Но попробовал я провести экспорт из Акцеса через эту модель и обнаружил крайне неприятный баг. С увеличением количества данных в базе на сервере, катастрофически падает скорость импорта. Весь ввод данных в БД у меня реализован через хранимки которые я уже только-что не вылизал для оптимизации и не могу понять в чем причина такого зверского замедления работы. Для примера, исходная база содержащая 50 тыс строк, разносится на 300 тыс. разных объектов в базе и все это длится почти сутки! Это же просто пипец какой-то. Сейчас гоняю разные варианты с первой тысячей строк из исходной БД. Пока нет существенного прорыва в скорости.
Пробовал подключать через натив клиента и через адо, принципиальной разницы в скорости импорта не заметил, но вот то что установка свойства CursorLocation в ServerLocation дало не прирост скорости, а очень существенное замедление - стало неожиданным.
В общем жду хоть каких-то идей, куда копать еще.
Система Win10 на i7 c 8 Гб памяти. MS SQL 2017. При всех тестах загрузка памяти не превышает 55%
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694250
Фотография AndyMandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Копать в сторону плана запросов.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694256
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъВесь ввод данных в БД у меня реализован через хранимки

Страдалецъустановка свойства CursorLocation в ServerLocation

Ты сам себе противоречишь. Хранимки, конечно, могут порождать курсоры, но не те, которые
вводят данные и "вылизаны".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694257
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ,

попробуйте весь импорт разбить на крупные транзакции (или всё в одну): Begin Transaction .... Commit
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694270
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
План исполнения - в студию.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694287
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,
Возможно вы и правы. Действительно, попробую делать порционные, скажем по 10 пачек объектов в одну транзакцию. Сейчас я вообще без явных указаний транзакций пытаюсь лить в базу.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694301
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О да! Как же я раньше то не догадался о транзакциях. После разбиения на порции все стало существенно лучше заливаться.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694314
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъО да! Как же я раньше то не догадался о транзакциях. После разбиения на порции все стало существенно лучше заливаться.
MS SQL щики... (:.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694340
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переложите проблему импорта на сам SQL сервер, bcp например или скажем IRowsetFastLoad поддержка которого есть в sdac у девартов.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694359
Фотография AndyMandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ...После разбиения на порции все стало существенно лучше заливаться.
Так до плана запросов и не дошло. Видно в следующий раз :)
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694499
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
План - это сильно сказано. Все хранимки выполнены по одному шаблону простой селект и такой-же простой инсерт, но в процессе импорта на каждый пакет данных приходится в среднем по 2 десятка вызовов хранимок.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694531
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СтрадалецъВсе хранимки выполнены по одному шаблону простой селект и такой-же простой инсерт

А select-то там зачем?

И ты не поверишь, но у этого "простого select" тоже есть план и он не всегда такой, как ты
думаешь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39694680
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачитать импорт в спец. таблицу и уже потом разобрать ее сложными процедурами.
Может выйти заметно быстрее.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39696103
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел я в чем у меня была основная проблема замедления. Все оказалось до смешного просто - для обновления датасета в приложении используется Requery, но при импорте я отключаю с помощью флага эту инструкцию. Оказалось, что в одном месте я этот флаг не поставил и в итоге, чем больше данных в БД, тем длительнее Requery, но тем не менее подсказка с транзакциями была удачна и значит не зря тему завел. Всем спасибо.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39697126
Фотография AndyMandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Страдалецъ,
Вот же ж блин, а я думал всю диагностику в Profiler сделали, а оно вон оно как.
...
Рейтинг: 0 / 0
Проблема скорости экспорта в MSSQL средствами Delphi
    #39698741
Страдалецъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я и сделал, а когда обнаружил, что сумма всех вызовов хранимок за один проход цикла, даже отдаленно не совпадает с итогом по циклу, наконец то и обнаружил слона. :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема скорости экспорта в MSSQL средствами Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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