2009-07-15 7 views
0

私のSQLクエリは、以下の通りであるに参加しますAuditData内のAuditDataの内部Join AuditMasterはam.ID = AuditData.AuditMaster_IDの内部結合HomeCircleMasterのhcm.html.Ori_CircleMaster_ID = am.CircleMaster_IDおよびhcm.Ori_ServiceTypeMaster_ID = 1およびhcm.Dest_ServiceTypeMaster_ID = 1の内部結合AuditTaggingMaster atm atA.AuditMaster_ID = am。 ID内部結合NoSeriesMaster ns(ns.CircleMaster_ID = am.CircleMaster_IDまたはns.CircleMaster_ID = hcm.Dest_CircleMaster_ID)およびns.ProviderMaster_ID <> am.Provider Master_IDおよびns.ServiceTypeMaster_ID = 1内部結合ProviderMaster_CallTypeMaster pm_ctm.ProviderMaster_ID = am.ProviderMaster_IDおよびpm_ctm.CallTypeMaster_ID = 101およびpm_ctm.CallTypeTagValue = AuditData.CallTypeTag INNER JOIN NoSeriesMaster_Prefix PD ON AuditData.CallTo PD.PrefixNo + '%' ANDのように(AuditData.CallTo、NoSeriesLen + PD.PrefixLen)ここで、AuditData.TATCallTypeはnullで、AuditData.AuditMaster_ID = 74であり、PD.PrefixType = 'AuditData.Cretolen = PD.PrefixLen + PD.AfterPrefixLenおよびPD.PrefixNo + ns.NoSeries = LEFT SMS」
私は美化クエリを投稿しようとする私に内部の変換は、SQLサブクエリ

ありがとう

+1

...私たちはテーブル構造、インデックス、行数、などのようなより多くの情報が必要となる最適化支援が必要な場合。 –

+0

あまりにも混乱していますので、あなたはそれをよく理解するためにSQLの文章を整理してください。 – Ahmy

+0

これはこれを投稿したのと同じです:http://stackoverflow.com/questions/1126466/slow-update-primary-key –

答えて

3

を助けてください。それ以外の場合は助けが難しいです。何をしようとしているのかを説明してください。 6つの内部結合があります。どちらを変更したいですか?とにかく あなたの質問はThis oneと非常に似ているようです。質問を2回投稿しないでください。

それ以外はこのクエリを最適化しようとしているようです。誰がそれをより速くするのか尋ねてみませんか?サブクエリを使用する私の謙虚な意見では、すべてが悪化します。 あなたはいくつかのフォーマットが役立つだろう

select distinct Auditdata.ID, 
     ns.ProviderMaster_ID as CDRComment 
    from Auditdata AuditData 
inner join AuditMaster  am on am.ID = AuditData.AuditMaster_ID 
inner join HomeCircleMaster hcm on hcm.Ori_CircleMaster_ID  = am.CircleMaster_ID 
           and hcm.Ori_ServiceTypeMaster_ID = 1 
           and hcm.Dest_ServiceTypeMaster_ID = 1 
inner join AuditTaggingMaster atm on atm.AuditMaster_ID = am.ID 
inner join NoSeriesMaster ns on ( ns.CircleMaster_ID = am.CircleMaster_ID 
           or ns.CircleMaster_ID = hcm.Dest_CircleMaster_ID) 
          and ns.ProviderMaster_ID <> am.ProviderMaster_ID 
          and ns.ServiceTypeMaster_ID = 1 
inner join ProviderMaster_CallTypeMaster pm_ctm on pm_ctm.ProviderMaster_ID = am.ProviderMaster_ID 
               and pm_ctm.CallTypeMaster_ID = 101 
               and pm_ctm.CallTypeTagValue =AuditData.CallTypeTag 
INNER JOIN NoSeriesMaster_Prefix PD ON AuditData.CallTo like PD.PrefixNo + '%' 
            AND AuditData.calltolen = PD.PrefixLen + PD.AfterPrefixLen 
            AND PD.PrefixNo + ns.NoSeries = LEFT(AuditData.CallTo, NoSeriesLen + PD.PrefixLen) 
where AuditData.TATCallType is null 
    and AuditData.AuditMaster_ID = 74 
    AND PD.PrefixType = 'SMS 
+0

上記の内部結合を削除して、内部結合の代わりにサブクエリを書くことができます – John

+0

どうすればよいのでしょうか? – John

+0

1つの質問は... は行単位で行を実行するかどうかを意味しません。ちょうどループのように??? – John

関連する問題