2017-06-30 8 views
0

私たちは本当に大きなデータクエリプロセスを持っています。 今のところ、未処理SQLクエリを使用してデータを取得しており、Python db apiカーソルを使用してそれらを実行しています。Python DBAPIカーソルはSQLカーソルと同じですか?もしそうなら、パフォーマンスを改善する方法は?代わりのアプローチは何でしょうか?

import psycopg2 
conn = psycopg2.connection("DB_connection_string") 
cursor = conn.cursor() 
cursor.execute("select * from so_so") 

これはパフォーマンス上の問題を提起しており、これらのカーソルはパフォーマンスに悪いSqlカーソルと同じだと考えています。

同じですか?もしそうなら、より速いアプローチをお勧めしますか?

SQLALCHEMYまたはORMパターンは、この方法より高速ですか?

また、SQLALCHEMYは、データベースとやり取りしてレイヤーを形成するドライバで構築されています。

+0

[PythonのDB-APIでカーソルはどのように機能しますか?](https://stackoverflow.com/questions/454337/how-do-cursors-work-in-pythons-db-api) –

+0

可能な代替案も求めていた。私が推測する他の質問には、代替の言及はありませんでした。 – Bhargav

答えて

1

いいえ、通常のpsycopg2カーソルはPostgreSQL server-side cursorsではありません。これらは、クライアントが必要とする時間のクエリ結果を保持する軽量のクライアント側データ構造です。

サーバ側のカーソルは、named cursorsを使用してpsycopgで使用でき、デフォルトでは使用されません。

関連する問題