Название: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Примерный ученик от Февраль 19, 2009, 14:38 Проявилась проблема.
Таблица в БД из 20 столбцов. В нее записывается > 1000 строк с данными. Используется QSqlCursor. 100 строк ~ 4 cek 1000 строк ~ 45 cek 10000 строк ~ час. Как с этим можно бороться? Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Rcus от Февраль 19, 2009, 15:01 /*Кастует телепатию первого уровня и догадывается что речь идет о Qt 3.3*/
/*Открывает документацию http://doc.trolltech.com/3.3/sql.html#7*/ Цитировать QSqlCursor operates on a single record at a time. Whenever performing an insert, update or delete using QSqlCursor, only a single record in the database is affected. /*Кастует телепатию второго уровня и предполагает что проблема во вставке записей по одной*/На телепатию третьего уровня не хватает Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Примерный ученик от Февраль 19, 2009, 15:14 За телепатию - 5 балов.
А как вставлять записи скопом? Код: QSqlCursor sCur("fp"); Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Rcus от Февраль 19, 2009, 15:21 можно попробовать QSqlDatabase::transaction() до, и QSqlDatabase::commit(). А вообще в PG для вставки множества записей есть команда COPY
Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Примерный ученик от Февраль 19, 2009, 15:46 Транзакция не помогает.
А как использовать COPY - нужно подумать, QSqlCursor вряд ли подойдет... Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Rcus от Февраль 19, 2009, 17:03 А вот и код. Я не работал с Qt 3, но все же строка sCur.select(); вызывает вопрос о ее применении. В примерах немного подругому происходит вставка
Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: Примерный ученик от Февраль 19, 2009, 17:29 А вот и код. Я не работал с Qt 3, но все же строка sCur.select(); вызывает вопрос о ее применении. В примерах немного подругому происходит вставка Вы чертовски правы...Работает совсем по другому... Я гонял туды-суды кучу ненужных данных... ??? Название: Re: Очень долго пишет (1000 записей) PostgreSQL Отправлено: BaltikS от Февраль 28, 2009, 22:22 Делал так.... Через QSqlQuery..... А сами запросы разделял ;
Типа INSERT INTO .. ()... ; INSERT INTO .. ()... ; INSERT INTO .. ()... ; INSERT INTO .. ()... ; ..... Работает быстро :) |