我正在Oracle中修改一个查询,其中需要上月的数据.目前,查询有一个where子句,其中包含以下内容:
...
...
...
WHERE cust_dt BETWEEN TO_DATE('05-01-2022','mm-dd-yyyy) AND TO_DATE('05-31-2022', 'mm-dd-yyyy')
我正在修改查询,以便不需要每月手动更改开始日期和结束日期来运行查询.在做了一些研究之后,我得出了以下结论:
...
...
...
WHERE TO_CHAR(cust_dt, 'MM-YYYY') = TO_CHAR(add_months(sysdate, -1), 'MM-YYYY')
我得到的结果是我想要的,但我很好奇,在给定更 Big Data 集的情况下,哪个查询的性能更好.我在网上看到的所有帖子都是在两者之间使用的,所以我想知道这是否有什么原因.
就调优、测试、性能等方面而言,我是一个完全的新手.实际查询本身非常复杂,有几个连接,因此性能很重要.目前,我只有少量的测试数据可供处理,因此我只能尽我所能找到最佳结果.
回到我的问题上来,哪一个查询最好?是使用BETWEEN还是使用TO\u CHAR?