Производительность запросов QODBS и SQL Server - PullRequest
0 голосов
/ 08 февраля 2012

Мое приложение выполняет около 5 запросов в секунду к базе данных SQL Server. Каждый запрос дает в среднем 1500 строк. Приложение написано на C ++ / QT, операции с базой данных реализованы с использованием драйвера QODBC. Я определил, что обработка запроса занимает около 25 мс, но получение результата - 800 мс. Вот как выглядит код запроса к базе данных:

QSqlQuery query(db)
query.prepare(queryStr);
query.setForwardOnly(true);
if(query.exec())
{
    while( query.next() )
    {
        int v = query.value(0).toInt();
        .....
    }
}

Как оптимизировать выборку результатов?

1 Ответ

1 голос
/ 08 февраля 2012

Это не дает прямого ответа на ваш вопрос, так как я годами не использовал QT.В реальном ODBC API вы часто можете ускорить извлечение строк, установив SQL_ATTR_ROW_ARRAY_SIZE в N, тогда каждый вызов SQLFetch возвращает N строк одновременно.Я взглянул на SqlQuery в qt и не смог найти способ сделать это, но это может быть что-то, что вы можете посмотреть с помощью QT или просто написать в ODBC API напрямую.Вы можете найти пример в Подготовка к возврату нескольких строк

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