SQL Server 2008 在 10 密耳记录表上选择性能 - 慢



我有一个包含 1000 万条记录的表,需要将所有记录加载到内存中(缓存应用程序(。

表结构如下:

CREATE TABLE [TestTable] (
    [Id]        [int] IDENTITY(1,1) NOT NULL,
    [RefId1]    [int] NOT NULL,
    [RefId2]    [int] NOT NULL,
    [RefId3]    [int] NULL,
    [Credits]   [money] NOT NULL,
    CONSTRAINT [PK_Table] PRIMARY KEY CLUSTERED ( [Id] ),
    CONSTRAINT [UK_Table] UNIQUE NONCLUSTERED ([RefId1],[RefId2],[RefId3])
)

表大小约为: 364080 KB (数据( - 341648 KB (索引(

使用简单选择加载此数量的数据大约需要 2 分钟。

选择已使用:

SELECT  Id, RefId1, Credits, RefId3
FROM    TestTable WITH (NOLOCK)

这是 SQL Server 的正常速度性能吗?如何加快此查询速度?

查询是从缓存应用程序和 SSMS 测试的,结果几乎相同。

我在具有32 GB RAM和SSD Disk RAID的16核服务器上使用SQL Server 2008 R2 Std,没有其他应用程序或与SQL服务器的连接。

从性能计数器中,我可以看到没有队列/磁盘/CPU 使用率,因为数据库完全在内存中。执行查询时,唯一可见的信息是 SQL 和 SSMS 之间的慢速网络流量,约为 6 MB/s。

所有测试都是在本地计算机上完成的。

关于如何加快速度或在哪里查找问题的任何建议?

我想

这不是SQL服务器的问题,更多的是将大量数据从DB传输到本地Windows交换文件/内存。为什么需要所有表,SQL Server将确定在正常情况下哪些页面应该保留在缓存中。

最新更新