[英]Performance optimisation for - MS SQL Delete query with NOT IN caluse
[英]Optimisation of the performance of the query using views
我已经为我的项目创建了视图,现在我想针对速度进行优化。 如何确定视图可以优化? 索引对此有用吗?
SELECT DISTINCT
ent.ID_Entreprise,
ct.Siret,
ct.Scont,
ct.Cont,
ct.Souscont,
ct.Entappcr,
ct.Cb,
ct.Sptf,
ct.Socuti,
ct.EntiteTPG,
ct.Datefcb,
ct.Dtfineffcb,
ct.Stacb,
ct.Libstacb,
ct.Perap,
ct.Libperap,
ct.Deremis,
ct.Derregl,
ct.typepdt,
ct.Libtypepdt,
ct.Libpdt,
ct.Libcb,
ct.CodeICX,
ct.AppLeader,
(CASE ct.typepdt
WHEN 'S' THEN '1'
WHEN 'P' THEN '2'
WHEN 'R' THEN '3'
WHEN 'E' THEN '3'
WHEN 'I' THEN '4'
ELSE '5' END) AS orderParam,
ct.Reg,
ct.ent_opt_set,
'' AS CdGraReg,
'' AS CaisseSS,
'' AS CentreSS,
ct.affilSalEnabled,
ct.AtOperationnel,
ct.Formule,
ct.FormuleSocle,
ct.Srs,
ct.Cntcb_actif,
ct.Libstacb_vision_C,
ct.DATPA,
ct.DATENVOI,
ct.DATREGUL,
ct.UC,
ct.Art39,
ct.Dateff,
ct.Cnt_actif,
ent.Raisoc,
ct.mensualisation,
ct.repartition,
ct.optFin,
ct.Date_hors_infocentre,
ent.visionC
从dbo.VW_Entreprise AS ent内部联接dbo.VW_Contrats AS ct ON ent.Siret = ct.Siret和ct.Entappcr = ent.entApp
我正在使用两个视图VW_Entreprise和VW_Contrats
对于此JOIN
:
dbo.VW_Entreprise AS ent
INNER JOIN dbo.VW_Contrats AS ct ON ent.Siret = ct.Siret AND ct.Entappcr = ent.entApp
您需要以下索引:
VW_Entreprise(Siret, entApp)
VW_Contrats(Siret, Entappcr)
如果这些索引尚不存在,请创建它们。 如果不了解您的数据结构和基础视图的定义,就很难提供更多建议。 一些提示:
SELECT DISTINCT
意味着RDBMS需要做更多的工作,因为它需要检查重复项(并且您将返回大量的列)。 使用前请确保您确实需要它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.