Một số điều cần thử
- Thay vì tham gia với mọi hàng và lọc kết quả trong mệnh đề where của bạn, bạn có thể thử giảm số lượng bản ghi trực tiếp trong phép nối có giúp tăng tốc mọi thứ không?
- Thêm chỉ mục bao gồm trên PersonKey, RoomKey, CheckOut &Row và xem liệu nó có cải thiện hiệu suất hay không.
Câu lệnh SQL
;with CTE (PERSONKEY, ROOMKEY, CHECKIN, CHECKOUT, ROW)
as (select RU.PERSONKEY,
RU.ROOMKEY,
RU.CHECKIN,
RU.CHECKOUT,
RU.ROW
from ROOMUSAGE RU
where RU.ROW = 1
union all
select RU.PERSONKEY,
RU.ROOMKEY,
RU.CHECKIN,
RU.CHECKOUT,
RU.ROW
from ROOMUSAGE RU
inner join CTE on CTE.ROW + 1 = RU.ROW
and CTE.CHECKIN = RU.CHECKOUT
and CTE.PERSONKEY = RU.PERSONKEY
and CTE.ROOMKEY = RU.ROOMKEY
)