首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何优化QSqlQuery?

如何优化QSqlQuery?
EN

Stack Overflow用户
提问于 2022-07-13 09:16:12
回答 1查看 44关注 0票数 0

我正在开发一个应用程序,它可以对Microsoft执行许多查询,我正在寻找一种优化它的方法。我想知道这些方法在性能上是否存在差异:

代码语言:javascript
复制
QSqlQuery query;
query.exec("SELECT name, salary FROM employee WHERE salary > 50000");

代码语言:javascript
复制
QSqlQuery query("SELECT name, salary FROM employee WHERE salary > 50000");

代码语言:javascript
复制
QSqlQuery query;
query.prepare("SELECT name, salary FROM employee WHERE salary > 50000");
query.exec();

我想知道是否有一种方法可以获得每个查询的执行时间?为了你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2022-07-13 09:55:00

我认为这些方案之间不会有太大的差别。对于性能测试,您始终可以拥有自己的RAII计时器,然后可以在任何地方使用。

为供简要参考,执行:

timetracer.h

代码语言:javascript
复制
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

代码语言:javascript
复制
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;                                                                     
}

然后,你就可以做:

代码语言:javascript
复制
#include "timetracer.h"

void myMethod()
{
    TimeTracer timeTracer("QSqlQuery::query");
    QSqlQuery query("SELECT name, salary FROM employee WHERE salary > 50000");
}                                                          
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72963761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档