私のアプリケーションは、SQL Serverデータベースに対して約5回/秒のクエリを実行します。各クエリの結果は平均で1500行になります。アプリケーションはC++/QTで記述され、データベース操作はQODBCドライバを使用して実装されます。クエリ処理には約25ミリ秒かかりますが、結果をフェッチするには800ミリ秒かかると判断しました。データベースを照会するコードの外観は次のようになりますQODBSとSQL Serverクエリのパフォーマンス
QSqlQuery query(db)
query.prepare(queryStr);
query.setForwardOnly(true);
if(query.exec())
{
while(query.next())
{
int v = query.value(0).toInt();
.....
}
}
結果のフェッチを最適化する方法は?
ありがとうございます。私はちょうどネイティブAPIを使用してそのものを実装し、15ミリ秒を得ました!私が言及したパラメータを設定しようとしています – Andrey
SQL_ATTR_ROW_ARRAY_SIZE> 1に設定するとより多くのメモリが必要ですが、より高速にする必要があります。 N行のデータとインジケータがSQLBindColに渡されるために、より多くの領域を割り当てることを忘れないでください。 – bohica