我已经为我的项目创建了视图,现在我想优化它们以达到速度的目的。如何识别视图可以优化?对此有用的索引。
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作为内部连接dbo.VW_Contrats AS ct ON ent.Siret = ct.Siret和ct.Entappcr = ent.entApp
我使用两个视图VW_Entreprise和VW_Contrats
发布于 2019-09-16 09:34:19
对于这个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意味着您的关系数据库管理系统需要更多的工作,因为它需要检查副本(并且您正在返回大量列);在使用它之前确保您确实需要它。https://stackoverflow.com/questions/57954007
复制相似问题