我有一张表Invoices
Invoices
CREATE TABLE Invoices (
Id int NOT NULL IDENTITY (1, 1),
Depot nvarchar(100) NOT NULL,
InvoiceNo nvarchar(100) NOT NULL,
InvoiceDate datetime NOT NULL,
Licencee nvarchar(255) NOT NULL,
Outlet nvarchar(1024) NOT NULL,
SerialNo int NOT NULL,
ProductName nvarchar(500) NOT NULL,
Size int NOT NULL,
[Case] int NOT NULL,
BeverageSegment nvarchar(100),
/* Keys */
PRIMARY KEY (Id)
)
GO
CREATE INDEX Invoices_BeverageSegment
ON Invoices
(BeverageSegment)
GO
CREATE INDEX Invoices_InvoiceId
ON Invoices
(InvoiceNo)
GO
我必须查询特定Depot
的总销售额,Product
上的Date
,表格中约1,35,850
,查询占47分钟。
我在数据库系统方面没有太多的专业知识,我已经检查了SqlCe的查询优化,但在这种情况下它们都没有帮助。
我的查询:
SELECT
Depot,
InvoiceDate,
ProductName,
Size,
SUM([Case]) as Cases
FROM Invoices
GROUP BY
Depot,
InvoiceDate,
ProductName,
Size
答案 0 :(得分:1)
在所有四列Depot,InvoiceDate,ProductName,Size上创建非聚集索引将提高性能。
Create NonClustered Index Index_Name
on
Invoices ( Depot, InvoiceDate, ProductName, Size)