2016-06-29 10 views
0
SELECT 
B.tblBooking_id, 
F.M_Merged_CustomerId, 
B.depart_date, 
B.cancellation, 
B.booking_num, 
B.end_date, 
B.date_booked, 
B.booking_price, 
B.tblBooking_Id as SOURCE_RES_ID , 
B.agentid, 
B.is_insert_date, 
B.is_update_date is_update_date, 
A.Agent_Email_Address as agent_email, 
A.Agent_Email_Address as agent_email_system 
FROM tblBooking B 
JOIN tblAgent A 
ON B.agentid=A.agentid 
LEFT JOIN tblFactCustomers F 
ON B.booking_num = F.raw_booking_num 
WHERE B.agentid !=0 or B.agentid IS NOT NULL 
GROUP BY B.tblBooking_id; 

表:tblBooking、tblAgent、tblFactCustomers 指数私はグループが句と使用していない集約関数でありますように、そのスクリプトが正常に実行されます疑う予約numと生予約NUMは、パフォーマンスを向上させるための代替クエリを提案していますか?使用

+0

インデックスの列の順序を知ることができます –

+0

これはコンパイルされますか?あなたはIDでグループを持っていて、集団に属していない他の多くのフィールドを選択しています。 –

+0

idが0またはnullのレコードを取得したくない場合は、その間に "and"演算子を含める必要があります。 –

答えて

0

に存在しています。ただし、パフォーマンスの測定値をフィールド値B.agentIDで確認し、値が負でない場合は、WHERE B.agentid !=0 or B.agentid IS NOT NULLWHERE B.agentid >0に置き換え、agentIDにクラスタ化されていないインデックスを作成してください。

関連する問題