【发布时间】:2011-07-14 10:59:10
【问题描述】:
我有一个 PostgreSQL 数据库,里面有一个 1,5M 记录的表,代码如下:
QString sql = "SELECT p.id, initcap(p.lname) lname, initcap(p.fname) fname, initcap(p.mname) mname, p.birthday, c.name as cname, p.enp" “来自 oms.persons p” “LEFT JOIN ref.countries c ON (p.citizenship = c.code)” “在哪里 p.lname 像:LNAME” "ORDER BY p.lname, p.fname, p.mname LIMIT 100"; QSqlQuery q; q.prepare(sql); q.bindValue(":LNAME", "TEST%"); q.exec();大约需要 1200 毫秒,但如果我在没有 bindValue() 函数的情况下执行此查询并将 :LNAME 替换为“TEST%”,则只需大约 30 毫秒。 我应该怎么做才能解决这个奇怪的 QSqlQuery 行为?
规格: Qt 4.7.3 窗口 Debian Linux 上的 PostgreSQL 8.4.8
【问题讨论】:
标签: qt postgresql