我正在开发一个应用程序,它可以对Microsoft执行许多查询,我正在寻找一种优化它的方法。我想知道这些方法在性能上是否存在差异:
QSqlQuery query;
query.exec("SELECT name, salary FROM employee WHERE salary > 50000");QSqlQuery query("SELECT name, salary FROM employee WHERE salary > 50000");QSqlQuery query;
query.prepare("SELECT name, salary FROM employee WHERE salary > 50000");
query.exec();我想知道是否有一种方法可以获得每个查询的执行时间?为了你的帮助!
发布于 2022-07-13 09:55:00
我认为这些方案之间不会有太大的差别。对于性能测试,您始终可以拥有自己的RAII计时器,然后可以在任何地方使用。
为供简要参考,执行:
timetracer.h
class TimeTracer {
public:
TimeTracer(const QString &message);
~TimeTracer();
private:
QString m_message;
std::chrono::steady_clock::time_point m_start;
std::chrono::steady_clock::time_point m_end;
}; timetracer.cpp
TimeTracer::TimeTracer(const QString &message)
: _message(message)
{
m_start = std::chrono::steady_clock::now();
}
TimeTracer::~TimeTracer()
{
m_end = std::chrono::steady_clock::now();
std::cout << m_message.toStdString() << ": " << std::chrono::duration<double, std::milli>(_end - _start).count(); << "ms" << std::endl;
}然后,你就可以做:
#include "timetracer.h"
void myMethod()
{
TimeTracer timeTracer("QSqlQuery::query");
QSqlQuery query("SELECT name, salary FROM employee WHERE salary > 50000");
} https://stackoverflow.com/questions/72963761
复制相似问题