选择查询需要很长时间

时间:2016-03-23 07:11:41

标签: sql-server

我想问一下如何使我的查询比现在更快, 我在1个表上有250万行,并希望在处理之前将它们放入tempdb,

SELECT  a.entity_cd, a.project_no, a.divisi, a.dept, a.acc_no, a.acc_curr,a.acc_period ,a.balance_base,a.db_base,a.cr_base,a.balance_forex,a.db_forex,a.cr_forex
INTO    #trlbal
FROM    dbo.acc_trlbal a
WHERE   a.entity_cd             = @rt_entity_cd
AND     LEFT(a.acc_period, 4)   IN (@f_cyear, @f_lyear)

有表格结构

CREATE TABLE [dbo].[acc_trlbal](
[entity_cd] [char](6) NOT NULL,
[project_no] [char](8) NOT NULL,
[divisi] [char](4) NOT NULL,
[dept] [char](4) NOT NULL,
[acc_no] [char](20) NOT NULL,
[acc_period] [char](6) NOT NULL,
[acc_type] [numeric](1, 0) NULL,
[balance_base] [numeric](17, 2) NULL,
[balance_forex] [numeric](17, 2) NULL,
[db_base] [numeric](17, 2) NULL,
[cr_base] [numeric](17, 2) NULL,
[db_forex] [numeric](17, 2) NULL,
[cr_forex] [numeric](17, 2) NULL,
[user_entry] [char](30) NULL,
[datetime] [datetime] NULL,
[acc_name] [char](250) NULL,
[acc_curr] [char](3) NULL,
[acc_spec] [numeric](1, 0) NULL,
[update_user] [char](10) NULL,
[update_date] [datetime] NULL,
[balance_base_adj] [numeric](21, 2) NULL,
[balance_forex_adj] [numeric](21, 2) NULL,
[db_base_adj] [numeric](21, 2) NULL,
[cr_base_adj] [numeric](21, 2) NULL,
[db_forex_adj] [numeric](21, 2) NULL,
[cr_forex_adj] [numeric](21, 2) NULL,
[balance_base_adj2] [numeric](21, 2) NULL,
[balance_forex_adj2] [numeric](21, 2) NULL,
[db_base_adj2] [numeric](21, 2) NULL,
[cr_base_adj2] [numeric](21, 2) NULL,
[db_forex_adj2] [numeric](21, 2) NULL,
[cr_forex_adj2] [numeric](21, 2) NULL
) ON [PRIMARY]

0 个答案:

没有答案