2017-03-07 5 views
0

クエリが実行に時間がかかりすぎます。簡素化するのを助けてください?私は一時テーブルにデータをポップして照会することを使用する傾向がある大規模なクエリの場合SQL選択コマンドを簡略化する方法

 SELECT uid,etop_id,SUM(amount) AS amt, 
        (SELECT m_name FROM member_details WHERE etop_id=a.etop_id) AS m_name, 
        (SELECT SUM(amount) FROM hidden_charges WHERE etop_id=a.etop_id 

    AND entry_date BETWEEN @date1 AND @date2 AND particular IS NULL 
        ) AS hidden, 
        (SELECT (SUM(credit)-SUM(debit)) 
         FROM member_transaction 
         WHERE member_id=a.uid 
         AND is_succeed=1 
         AND isnull(reference_id,0) NOT IN(SELECT 
user_reference_id FROM recharge_request WHERE status=7) 
        ) AS balance, 
        ( SELECT TOP 1 credit 
         FROM member_transaction 
         WHERE member_id=a.uid 
         AND credit>0 
         AND entry_date=(SELECT MAX(entry_date) 
             FROM member_transaction 
             WHERE member_id=a.uid AND credit>0)) AS credit 
      FROM recharge_request a WHERE status=1 AND rdate BETWEEN @date1 AND @date2 
      GROUP BY etop_id, uid ORDER BY amt DESC 
+1

可能性のあるSQLインジェクションについて知っていますか? – Andreas

+0

はい私はテキストボックスをパラメータで置き換えています。 –

+0

@AmitMishra。 。 。何がそんなに長くかかっているかを把握するために節を削除することで、クエリを簡略化します。次に、単純化されたクエリで別の質問をします。 –

答えて

0

: はここに私のクエリです。

Select * 
Into #Table 
From member_transaction 
Where member_id=a.uid 

次に、member_transactionではなく#Tableをクエリするだけで、処理が速くなるはずです。

関連する問題