Sql скорость выполнения очень медленно - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть цикл, и в этом цикле я использовал команду INSERT INTO для значений 75000+.когда я бегу, это занимает больше времени.как я могу улучшить скорость вставки, ...

заранее спасибо ... rgs tharindu

Ответы [ 3 ]

1 голос
/ 04 апреля 2011

Если у вас есть цикл со вставками 75k, вы делаете это неправильно

На основании ваших комментариев вам нужно что-то для составления строк.

;WITH cNumbers AS
(
    SELECT ROW_NUMBER() OVER (ORDER BY c.id) - 1 AS rownum
    FROM sys.columns c CROSS JOIN start_number c2 CROSS JOIN start_number c3
)
SELECT
    c.rownum + m.start_number
FROM
    mastertable m
    CROSS JOIN
    cNumbers c
WHERE
    c.rownum <= no_of_items

Есть лучшиеспособы генерирования строк, но это будет лучше, чем зацикливание 75 000 раз.

Редактировать: та же идея применима к большинству СУБД, кроме MySQL, в которой нет функций Windowing ... в этом случае у меня будет Numbersтаблица, заполненная 1-100000 для примера

1 голос
/ 04 апреля 2011

Если вы используете SQL Server (не был указан): вместо множества отдельных вызовов INSERT используйте групповой метод, например

0 голосов
/ 04 апреля 2011

Одним из решений может быть запись данных для вставки в файл, а затем использование LOAD DATA INFILE в mysql для загрузки в пакетном режиме.Это должно значительно ускорить процесс по сравнению с наличием 75000 отдельных вставок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...