我有这个问题:
SELECT
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[SOCIETE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[DATE_COMPTABILISATION],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[TYPE_DOCUMENT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[NUM_DOCUMENT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[DESIGNATION],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[CODE_JOURNAL],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[MONTANT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[MONTANT_DEBIT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[MONTANT_CREDIT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[TYPE_ORIGINE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[NUM_ORIGINE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[MONTANT_TVA],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[GROUPE_COMPTA_PRODUIT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[GROUPE_COMPTA_MARCHE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[LETTRE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[TYPE_COMPTA_TVA],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[NUM_TRANSACTION],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[NUM_SEQUENCE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[NUM_COMPTE],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[GROUPE_COMPTA_MARCHE_TVA],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[GROUPE_COMPTA_PRODUIT_TVA],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[CODE_BUDGET],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[ID],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[Dimension Value Code],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[CENTRE_COUT],
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[TYPE_COMPTE],
CODE_TS
FROM
[dbo].[T_COMPTA_ECRITURE_COMPTABLE] WITH(INDEX(DATE))
WHERE
[dbo].[T_COMPTA_ECRITURE_COMPTABLE].[DATE_COMPTABILISATION] >='01/05/2014'
AND [dbo].[T_COMPTA_ECRITURE_COMPTABLE].[DATE_COMPTABILISATION] < '01/06/2014'
查询工作正常,但速度太慢。有没有办法优化查询执行时间?
答案 0 :(得分:0)
查询并不复杂,但至少有一种方法可以优化它。
当你比较不同类型的数据时,sql server会在每次检查时一直转换它。您应该使用select
distinct p1.name,p1.article from products p1
where
exists(
select 1 from products p2
where p2.article = p1.article
and p2.name <> p1.name
)
或CAST
提前一次执行转换:
CONVERT
我在此示例中使用了...
WHERE [dbo].[T_COMPTA_ECRITURE_COMPTABLE].[DATE_COMPTABILISATION] >= CONVERT('01/05/2014', DATETIME2(7), 103)
AND [dbo].[T_COMPTA_ECRITURE_COMPTABLE].[DATE_COMPTABILISATION] < CONVERT('01/06/2014', DATETIME2(7), 103)
- 您更喜欢DATETIME2(7)
列所具有的相同类型。
DATE_COMPTABILISATION
参数的103值是CONVERT
格式。有关here的更多信息。