Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
Такое дело, есть запрос.

select c1,c2,c3,c4,c5
from datatable
where id in (select max(id) from datatable)

Ситуация состоит в следующем этим запросом выбираются данные каждую секунду. Происходит это таким образом в Delphi компонет Query(в нем прописан запрос) прописан на событие OnTime в Timer.
Может есть у кого мысли как выборку можно сделать максимально быстро.
27 июл 11, 21:21    [11036558]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
И на сколько долго он выполнятся?
И сколько записей в таблице?
Есть ли индекс по полю ID и какой?
Если 1 запись, то почему не:


select TOP 1 c1,c2,c3,c4,c5
from datatable
ORDER BY ID DESC
27 июл 11, 21:30    [11036590]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
pkarklin,

А как посмотреть есть ли индекс? Дело в том что в базу данные пишутся с прибора. Он сам создает там таблицы так что я не знаю есть ли там индексы. Количество записей огромное. Каждую секунду записыватся новая запись за сутки там 86000 что ли получается проработал месяца три он. Так что там их достаточное количество.
27 июл 11, 21:36    [11036608]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Давайте начнем с оглашения результата запроса SELECT @@version.
27 июл 11, 21:38    [11036617]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
Под рукой нет сервера. Но я так пологаю вас интересует версия сервера. MS SQL Standart 2005
27 июл 11, 21:43    [11036625]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
EXEC sp_helpindex N'datatable'
27 июл 11, 21:46    [11036630]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
pkarklin,

Не могу написсать запрос сервер находится не дома. Завтро с утреца обязательно отвечу что выведет на этот запрос.
27 июл 11, 21:48    [11036637]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
pkarklin
EXEC sp_helpindex N'datatable'


Msg 15009, Level 16, State 1, Procedure sp_helpindex, Line 37
The object 'datatable' does not exist in database 'master' or is invalid for this operation.
28 июл 11, 05:56    [11037408]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
Залез щас через менеджер существует индекс по id. И еще 4 индекса на те поля которые мне не нужны.
28 июл 11, 05:59    [11037409]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
Кудряшка
Member

Откуда: Сидней
Сообщений: 2219
NDZH
pkarklin
EXEC sp_helpindex N'datatable'


Msg 15009, Level 16, State 1, Procedure sp_helpindex, Line 37
The object 'datatable' does not exist in database 'master' or is invalid for this operation.


Переключите контекст query window на Вашу базу. Вы запустили запрос на базе master.

Или в самом запросе напишите

USE [Ваша БД]

а следом

EXEC sp_helpindex N'datatable'
28 июл 11, 06:19    [11037413]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
USE RGBTEC2
EXEC sp_helpindex N'Data_106807_16_0_8'

Msg 15009, Level 16, State 1, Procedure sp_helpindex, Line 37
The object 'Data_106807_16_0_8' does not exist in database 'RGBTEC2' or is invalid for this operation.
28 июл 11, 06:30    [11037418]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация запроса на выборку последней записи.  [new]
NDZH
Member

Откуда:
Сообщений: 50
Это индекс поля ID

PK__Data_016807_16_0__3552E9B6
28 июл 11, 06:32    [11037420]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить