我有一个SQL Server数据库。里面有两张桌子,我们叫他们吧
MASTER
和
SLAVE
他们之间有一对多的关系,所以
船长,船长
记录可以连接到多个
从,从
记录。
下面是表创建者SQL命令(您也可以在那里看到我的索引):
CREATE TABLE [MASTER]
(
[gprs_id] INTEGER IDENTITY NOT NULL,
[date_time] DATETIME NOT NULL,
[valid] TINYINT NOT NULL,
[lat] REAL NOT NULL,
[lon] REAL NOT NULL,
CONSTRAINT MASTERPrimaryKey PRIMARY KEY NONCLUSTERED(gprs_id)
);
CREATE CLUSTERED INDEX MASTERDate ON MASTER (date_time);
CREATE TABLE [SLAVE]
(
[io_id] INTEGER IDENTITY NOT NULL,
[recordid] INTEGER NOT NULL,
[ioid] TINYINT NOT NULL,
[iovalue] FLOAT NOT NULL,
CONSTRAINT SLAVEPrimaryKey PRIMARY KEY CLUSTERED(io_id)
);
我进行了以下查询以从SLAVE查询数据:
DECLARE @fromdate datetime;
DECLARE @todate datetime;
SET @fromdate = '2014-01-01T00:00:00.000';
SET @todate = '2015-01-01T00:00:00.000';
SELECT
MASTER.date_time, SLAVE.*
FROM
MASTER
INNER JOIN
SLAVE ON MASTER.gprs_id = SLAVE.recordid
WHERE
date_time >= @fromdate
AND date_time <= @todate;
我有大约50万张唱片
从,从
约50000英寸
船长,船长
。我发现查询非常慢,超过一分钟(如果我从.net代码的SQL Server Management Studio进行测试,也是如此)。
我怎样才能加快速度?
谢谢大家!