【发布时间】:2018-05-01 22:45:44
【问题描述】:
大数据表,有谁知道怎么优化count语句?
例如:表 Booking(id, email, mobile,....)(大约 30 个字段)。
Function GetBookingCount(p_email, p_mobile) return number
Select count(id)
from Booking
Where email = p_email
or mobile = p_mobile
Function GetBookingStatus3Count(p_email, p_mobile) return number
Select count(id)
from Booking
Where (email = p_email or mobile = p_mobile)
and status = 3;
最终选择:
Select GetBookingCount(email, mobile) as BookingCount
, GetBookingStatus3Count(email, mobile) as BookingStatus3Count
, ...
From Booking
where ....
解决方案1:在where子句中设置字段列索引what为email列、mobile、status列。
解决方案2:创建一个包含几列要计数的新表。 新表:Booking_Stats(id, email, mobile, status)。
感谢您的任何建议。
【问题讨论】:
标签: sql oracle performance plsql