Hi,The following query runs in <1s when running straight:[code="sql"]SELECT zpsinvoice1_.ClientId AS col_0_0_, zpsinvoice1_.InvoiceGroupId AS col_1_0_, zpsinvoice1_.Id AS col_2_0_, zpsinvoice1_.Amount AS col_3_0_, zpsexpense4_.ExpenseTypeCodeId AS col_4_0_, zpsinvoice3_.ExternalId AS col_5_0_, zpsinvoice0_.DocumentId AS col_6_0_FROM Z_PS_InvoiceDocument zpsinvoice0_ INNER JOIN Z_PS_Invoice zpsinvoice1_ ON zpsinvoice0_.InvoiceId = zpsinvoice1_.Id INNER JOIN VT_ClientCore vtclientco2_ ON zpsinvoice1_.ClientId = vtclientco2_.[EntityCode#ClientCore] LEFT OUTER JOIN Z_PS_InvoiceGroup zpsinvoice3_ ON zpsinvoice1_.InvoiceGroupId = zpsinvoice3_.Id LEFT OUTER JOIN Z_PS_ExpenseTypeMap zpsexpense4_ ON zpsinvoice1_.ExpenseTypeMapId = zpsexpense4_.IdWHERE zpsinvoice1_.ClientId = 'GUID_d2b64f6d-2d3c-412b-81d5-a344c46198ad'[/code]when running the same using sp_prepexec:[code="sql"]declare @p1 intexec sp_prepexec @p1 output,N'@P0 nvarchar(4000)',N'select zpsinvoice1_.ClientId as col_0_0_, zpsinvoice1_.InvoiceGroupId as col_1_0_, zpsinvoice1_.Id as col_2_0_, zpsinvoice1_.Amount as col_3_0_, zpsexpense4_.ExpenseTypeCodeId as col_4_0_, zpsinvoice3_.ExternalId as col_5_0_, zpsinvoice0_.DocumentId as col_6_0_ from Z_PS_InvoiceDocument zpsinvoice0_ inner join Z_PS_Invoice zpsinvoice1_ on zpsinvoice0_.InvoiceId=zpsinvoice1_.Id inner join VT_ClientCore vtclientco2_ on zpsinvoice1_.ClientId=vtclientco2_.[EntityCode#ClientCore] left outer join Z_PS_InvoiceGroup zpsinvoice3_ on zpsinvoice1_.InvoiceGroupId=zpsinvoice3_.Id left outer join Z_PS_ExpenseTypeMap zpsexpense4_ on zpsinvoice1_.ExpenseTypeMapId=zpsexpense4_.Id where zpsinvoice1_.ClientId=@P0',N'GUID_d2b64f6d-2d3c-412b-81d5-a344c46198ad'[/code]it takes 18s :( and the query plan is slightly (not a lot) differentproblem is I'm using hibernate (java) so there is afaik no way to [i]not[/i] use jdbc prepared statements, without going native query.This is one of a few examples that run really badly; for the most part queries run quick. Any ideas how i can troubleshoot why the prep part takes so long?
↧