/ / Как работи execemany () - sqlite, executemany

Как работи executemany () - sqlite, executemany

Използвам c ++ и работя с sqlite. В python, имам executemany операция в библиотеката, но c + + библиотеката, която използвам, няма тази операция.

Чудех се как изпълняващата операция оптимизира заявките, за да ги направи по-бързи.

Гледах в sqlite c / c ++ api и видях, че има две команди: sqlite3_reset и sqlite3_clear_bindings, които могат да се използват за изчистване и повторно използване на подготвени отчети.

Това ли е това, което питон прави, за да партидира и ускори изпълнителните запитвания (поне за вложки)? Благодаря за отделеното време.

Отговори:

2 за отговор № 1

executemany просто свързва параметрите, изпълнява изявленията и се обажда sqlite3_reset, във верига.

Python не ви дава директен достъп доизявление след като е било подготвено, така че това е единственият начин да го използваме отново. Въпреки това, SQLite не отнема много време за изготвяне на отчети, така че е малко вероятно това да има голям ефект върху производителността.

Най-важното за представянето е да се групират отчети в транзакция; Python се опитва да бъде умен и за да направите това автоматично (независимо от executemany).


0 за отговор № 2

Погледнах в някои от съответните публикации и намерихследващата, която е много подробна за начините за подобряване на sqlite партида вмъкване performace. Тези принципи могат ефективно да се използват за създаване на изпълняваща функция.

Подобряване на производителността на SQLite в INSERT за секунда?

Най-големите промени в подобренията са наистина@CL. каза, превръщайки всичко в една сделка. Авторът на другия пост също установи значително подобрение чрез използване и повторно използване на подготвени отчети и игра с някои прагма настройки.