Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимизированный доступ в MS SQL?????????? / 15 сообщений из 15, страница 1 из 1
02.06.2001, 10:14
    #32006838
RUrick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Есть мнение, что самый быстрый доступ - это когда ты знаешь номер строки т.е. Row ID и номер поля?
Вопрос:
Как в MS SQL получить Row ID на строку и как зная его считать строку.

Заранее благодарен.
С Уважением RUrick. e-mail: rurick@mailru.com
...
Рейтинг: 0 / 0
04.06.2001, 02:17
    #32006867
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Про номер объекта знаю. Про GUID и timestamp знаю, а вот про Row ID нет. Может Вы про индексы?
Все равно когда Вы скажете серверу SELECT * FROM TableName WHERE RowID = Somthing он пройдется по всем записям прежде чем выберет Вашу.
...
Рейтинг: 0 / 0
04.06.2001, 05:54
    #32006871
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
2 RUrick
Наверное это мнение работающих с Oracle, в MS SQL такого понятия как номер строки нет
...
Рейтинг: 0 / 0
04.06.2001, 08:46
    #32006883
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
>Все равно когда Вы скажете серверу SELECT * FROM TableName WHERE RowID = Somthing он пройдется по всем записям прежде чем выберет Вашу.

Странно. Неужели даже если по полю RowID существует уникальный кластерный индекс не будет применен никакой метод быстрого поиска?
...
Рейтинг: 0 / 0
04.06.2001, 18:01
    #32006934
Fompro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
-Разве наши слоны летают?
-Значит летают ...
"Следствие ведут ..."
...
Рейтинг: 0 / 0
05.06.2001, 01:30
    #32006940
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
2 Павел
Сознаюсь, написал только догадку. Может есть какая-то технология. Надо покапаться.
...
Рейтинг: 0 / 0
05.06.2001, 14:59
    #32007000
RUrick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
))
Это вовсе не мистика!
Если бы не было указателей на строки, то не было и индексов
Система организации адресации MS SQl примерно следующая:
Цитата {
Указатель на строку (row locator или Row IDentificator, RID позволяет определить местоположение конкретной строки в базе данных и включает в себя информацию:
ID file
ID page
slot number
}
....................
А по поводу недовольства того что select просматривает всё подряд могу посоветовать посмотреть параметр ROWCOUNT.
...
Рейтинг: 0 / 0
05.06.2001, 15:04
    #32007001
RUrick.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Да и ещё одна цитата:
{
Error 624
Severity Level 21
Message Text
Could not retrieve row from page by RID because the requested RID has a higher number than the last RID on the page. %S_RID.%S_PAGE, Dbid %d
}
................
Последняя строка наводит на размышления...
С Уважением RUrick
...
Рейтинг: 0 / 0
06.06.2001, 10:10
    #32007047
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Цитата из BOL:
For a heap, a row locator is a pointer to the row. For a table with a clustered index, the row locator is the clustered index key.
Из этого выводы:
т.к. 1. row locator есть не всегда и 2. Доступ к нему неизвестен
лучше просто использовать кластерный индекс.
...
Рейтинг: 0 / 0
06.06.2001, 14:17
    #32007065
dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
>>Все равно когда Вы скажете серверу SELECT * FROM TableName WHERE RowID = Somthing он пройдется по всем записям прежде чем выберет Вашу.
>Странно. Неужели даже если по полю RowID существует уникальный кластерный индекс не будет применен никакой метод быстрого поиска?

Может быть применен, а может и нет - в зависимости от многих параметров, например если таблица содержит всего одну страницу данных, то сканирование таблицы без использования индекса будет дешевле (всего 1 чтение), чем с его использованием (1 чтение индексной страницы + 1 чтение страницы данных=2). Для больших таблиц конечно же будет использоваться индекс. Причем вовсе не обязательно чтоб он был уникальным. Не обязательно также что б он был кластеным.
-----------------------------------------
>For a heap, a row locator is a pointer to the row. For a table with a clustered index, >the row locator is the clustered index key.

Это справедливо, если кластерный индекс - уникальный. В случае неуникального кластерного индекса в качестве row locator используется составная структура - кластерный индекс + дополнительное имя типа uniqueidentifier. Это поле создается SQL SERVER-ом автоматически и является невидимым для пользователя.
В случае отсутствия кластерного индекса вообще, действительно в качестве row locator используется составная структура
file ID+ номер страницы+ номер слота в ней.
...
Рейтинг: 0 / 0
06.06.2001, 17:32
    #32007093
Fompro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Так за чем же дело стало? Быстро пишем программульку, которая бы считывала эти значения и быстренько находила бы данные.
...
Рейтинг: 0 / 0
06.06.2001, 17:39
    #32007094
Alexander Chepack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Прочитал дискуссию и ничего не понял - RID предназначен исключительно для внутреннего использования SQL Server'ом - мы к нему доступа не имеем. А если нужна оптимизация - ну так во все времена индексы для этого использовались...

Или я не понял темы разговора?
Помнится, когда я с dbf на Access перешел (ох давно это было) - тоже ломал голову - где же там номер записи-то? И как без него работать?
...
Рейтинг: 0 / 0
06.06.2001, 19:30
    #32007096
ANT_M
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Что есть "быстрый доступ" и для чего он понадобился многоуважаемой публике?
Посмотреть внутреннее хранение данных на странице - dbcc для этого есть.
Разобраться с внутренним хранением или просто почитать про это - " Inside MS SQL Server 2000 ", by Kalen Delaney - глава Tables, Internal storage.
...
Рейтинг: 0 / 0
07.06.2001, 08:21
    #32007122
Lohmatun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
> > Разобраться с внутренним хранением или просто почитать про это - " Inside MS SQL Server > > 2000 ", by Kalen Delaney - глава Tables, Internal storage.
А где берут такую книгу?
...
Рейтинг: 0 / 0
27.06.2001, 17:32
    #32008472
Ламер
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизированный доступ в MS SQL??????????
Понятие ROWID из ORACLE в MSSQL отсутствует. (Впрочем и ORACLE его использовать не рекомендует, т.к. запись может мигрировать). MSSQL имеет свое понятие ROWID как элемент структуры хранения. Получить к нему доступ явным образом нельзя. Для более менее больших таблиц самый быстрый способ доступа - доступ с использованием кластерного индекса. Подробнее - в Books Online.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимизированный доступ в MS SQL?????????? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]