Zend_Db_Adapater_Oracle 和“UPPER”问题

发布于 2024-10-12 03:27:53 字数 329 浏览 7 评论 0原文

以下问题:

具有 1000 000 条记录的表

如果我将以下查询与 Zend_Db_Adapter_Oracle 一起使用:

SELECT COUNT(*) FROM XYZ WHERE (UPPER(ATTRIBUTE)='XXX') AND UPPER(OBJECT)='XX'

我需要大约 15 秒。

如果我使用 OCI_CONNECT (本机 php),我需要 3 秒。 如果我使用 Zend Adaptor 从查询中删除 (UPPER),则需要 3 秒。

有人知道如何使用上层并运行快速查询吗? :-)

Following problem:

Table with 1000 000 Records

If i use the following query with Zend_Db_Adapter_Oracle:

SELECT COUNT(*) FROM XYZ WHERE (UPPER(ATTRIBUTE)='XXX') AND UPPER(OBJECT)='XX'

I takes a round 15sec.

If i use OCI_CONNECT (native php) i takes 3 seconds.
If i remove (UPPER) from the query with the Zend Adapater its altough 3 seconds.

Does somone has an idea how to user upper and altough run an fast query? :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玻璃人 2024-10-19 03:27:53

使用基于函数的索引: http://use -the-index-luke.com/sql/where-clause/functions/case-insensitive-search

但是,这并不能解释为什么它在不同的连接类型下效果更好,请确保您发出相同的语句两次?或者也许是缓存效果?

use a function based index: http://use-the-index-luke.com/sql/where-clause/functions/case-insensitive-search

however, that doesn't explain why it works better with a different connection type, sure you issue the same statement twice? or maybe caching effects?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文