У меня есть следующая таблица:Какой самый лучший способ индексировать эту таблицу
CREATE TABLE [dbo].[HousePrices](
[Id] [int] IDENTITY(1,1) NOT NULL,
[PropertyType] [int] NULL,
[Town] [nvarchar](500) NULL,
[County] [nvarchar](500) NULL,
[Outcode] [nvarchar](10) NULL,
[Price] [int] NULL
PRIMARY KEY CLUSTERED
(
[Id] ASC
)
которая в настоящее время около 20 миллионов записей, и мне нужно выполнять запросы, чтобы рассчитать среднюю цену в определенной области. Например:
select avg(price)
from houseprices
where town = 'London'
and propertytype = 1
ИНЕКЕ может иметь любую комбинацию из города, округа или Outcode, и, вероятно, всегда есть PropertyType (который является одним из четырех значений). Я попытался создать некластеризованный индекс в одном из полей, но для выполнения все еще требуется около 2 минут.
Несомненно, это должно быть в состоянии работать в течение секунды?
Google и узнайте о «Covering Index» и создайте индекс, который охватывает все запрошенные вами запросы. –