小编Dea*_*mas的帖子

SQL Server:查询性能(搜索 200 万行)

有一个有趣的 SQL 大师在那里。现在这个搜索只需要几秒钟,但它非常密集,必须有更好的方法。可能是我期望太高了?

简单的假期搜索应用程序。200 万假期。分页/排序大约 600,000 行。

这是表的架构

CREATE TABLE [dbo].[Holiday](
        [Id] [int] NOT NULL,
        [PropertyId] [int] NOT NULL,
        [Price] [int] NOT NULL,
        [Rating] [int] NOT NULL,
        [Country] [char](2) NOT NULL,
        [ResortId] [int] NOT NULL,
        [DepartureAirport] [char](3) NOT NULL,
        [DestinationAirport] [char](3) NOT NULL,
        [DepartureDate] [datetime] NOT NULL,
        [Basis] [char](2) NOT NULL,
        [Duration] [int] NOT NULL,

     CONSTRAINT [PK_Holiday] PRIMARY KEY CLUSTERED ([Id] ASC)
  )
Run Code Online (Sandbox Code Playgroud)

如您所见,非常简单。我们有属性、价格、持续时间、出发/目的地机场等。现在,提供的字段越多,搜索速度就越快。如果我有出发机场、财产和日期,那么搜索速度非常快。但是,如果我只有一个国家而不是其他任何东西,则需要处理大量数据。

使用我的表格的这个CSV 导出,总共有 200 万行,大约 666k 仅国家代码为 FR,这是我的例子。

这是搜索查询。它返回两个表。第一个是摘要,因此符合您的条件的假期总数以及有多少独特的属性。第二个表包含搜索的实际结果。

--Build a temp table, and store …
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 database-design

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

database-design ×1

sql-server-2005 ×1