Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
bholmstrom
Yak Posting Veteran
76 Posts |
Posted - 2013-06-20 : 11:15:49
|
I have a query that I am running on a table with 1.4 million qualified rows. The query compares a value in one table to the non-existance of that field in the other table. This query is painfully slow. ANyone have any ideas.Here is the code:INSERT INTO [DataPump_Staging].[dbo].[Elite_Matters] Select [wa_mattvalue].[yr] as Bill_Year, [wa_mattvalue].[mo] as Bill_Month, [wa_mattvalue].[period] as Bill_Period, [wa_mattvalue].[clsort] as Sort, [wa_mattvalue].[mmatter] as Matter, [wa_mattvalue].[mdesc1] as matter_name, [wa_mattvalue].[clnum] as Client, [wa_mattvalue].[crelated] as master_client, ([wa_mattvalue].[fee_bills_ytd] + [wa_mattvalue].[hcost_bills_ytd] + [wa_mattvalue].[scost_bills_ytd] + [wa_imattvalue].[oaf_bills_ytd] + [wa_imattvalue].[oac_bills_ytd] + [wa_imattvalue].[oao_bills_ytd]) as Billed_YTDfrom [HOSTBIDB].[son_db_bi].[dbo].[wa_mattvalue]Join [HOSTBIDB].[son_db_bi].[dbo].[wa_imattvalue] ON ([wa_imattvalue].[mmatter] = [wa_mattvalue].[mmatter]) AND ([wa_imattvalue].[period] = [wa_mattvalue].[period])where [wa_mattvalue].[yr] >= 2010 AND [wa_mattvalue].[mmatter] NOT IN (select cpdc_matternum collate latin1_general_ci_as from [Hostcrm1].[ReznickGroup_MSCRM].dbo.[CPDC_matter]) order by [wa_mattvalue].[yr],[wa_mattvalue].[period],[wa_mattvalue].[mmatter]Thanks in advanceBryan Holmstrom |
|
James K
Master Smack Fu Yak Hacker
3873 Posts |
Posted - 2013-06-20 : 11:42:04
|
First look at the query plan to see what is taking up the time and resources. If you have indexes on mmatter, period that would help. Also, if you have index on cpdc_matternum, you might consider changing the NOT IN clause to a NOT EXISTS clause like this:....AND NOT EXISTS ( SELECT * FROM [Hostcrm1].[ReznickGroup_MSCRM].dbo.[CPDC_matter] WHERE cpdc_matternum COLLATE latin1_general_ci_as = [wa_mattvalue].[mmatter]) But to be honest, these are just educated guesses on my part. You really need to look at the execution plan to see what is slowing it down.Also, you might want to make sure that the statistics are upto date and that the indexes if any that are being used are not fragmented. |
|
|
bholmstrom
Yak Posting Veteran
76 Posts |
Posted - 2013-06-20 : 12:35:26
|
Thanks, I ended up using a left join and a IS NULL statment that reduced it by 200%Bryan Holmstrom |
|
|
|
|
|
|
|