Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Оптимизация запроса [MSSQL]


Страницы:   1 2

alsov ©   (2006-01-11 10:33:00) 

Приветствую, Мастера

Помогите с оптимизацией запроса.

Есть табличка


CREATE TABLE [History] (
[DateTime] [datetime] NOT NULL ,
[Name] [varchar] (255) NOT NULL ,
[Value] [float] NULL ,
[test] [int] NULL)
GO

ALTER TABLE [History] ADD CONSTRAINT [PK_History] PRIMARY KEY  CLUSTERED
(
 [DateTime],
 [Name]
)  ON [PRIMARY]
GO

CREATE  INDEX [IDX_rev] ON [History]([Name], [DateTime]) ON [PRIMARY]
GO


Нужно написать выборку всех последних значений для каждого Name.

Написал следующий селект, но работает очень долго (т.к. данных там прилично)

SELECT DateTime, Name, Value, Test
FROM History h1
WHERE (DateTime = (SELECT MAX(datetime) FROM History1 h2 WHERE h2.Name = h1.Name))


Johnmen   (2006-01-11 11:05:00) [21]

Тогда только с подзапросом...


alsov   (2006-01-11 11:01:00) [22]

мне еще поля Value и Теst в результате надо, а не только  Name и datetime


Johnmen   (2006-01-11 10:41:00) [23]

кстати, для ускорения неплохо бы индекс на Name


Johnmen   (2006-01-11 10:40:00) [24]

SELECT Name, MAX(datetime)
FROM History h1
GROUP BY Name


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо