有大数据的表,有人知道如何优化count语句吗?例如:表预订(ID,电子邮件,手机,...)(约30个字段)。Oracle - 在有大量数据的表上需要多次计数的建议
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子句中算作电子邮件列,移动,状态栏什么的字段列索引。
解决方案2:创建一个包含少量列的新表。 新表:Booking_Stats(id,电子邮件,手机,状态)。
感谢您的任何建议。
谢谢,但你的SQL可能是错误的,不工作,请参阅oracle中的sql – hungudgm