Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Есть мнение, что самый быстрый доступ - это когда ты знаешь номер строки т.е. Row ID и номер поля? Вопрос: Как в MS SQL получить Row ID на строку и как зная его считать строку. Заранее благодарен. С Уважением RUrick. e-mail: rurick@mailru.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2001, 10:14 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Про номер объекта знаю. Про GUID и timestamp знаю, а вот про Row ID нет. Может Вы про индексы? Все равно когда Вы скажете серверу SELECT * FROM TableName WHERE RowID = Somthing он пройдется по всем записям прежде чем выберет Вашу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 02:17 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
2 RUrick Наверное это мнение работающих с Oracle, в MS SQL такого понятия как номер строки нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 05:54 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
>Все равно когда Вы скажете серверу SELECT * FROM TableName WHERE RowID = Somthing он пройдется по всем записям прежде чем выберет Вашу. Странно. Неужели даже если по полю RowID существует уникальный кластерный индекс не будет применен никакой метод быстрого поиска? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 08:46 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
-Разве наши слоны летают? -Значит летают ... "Следствие ведут ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2001, 18:01 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
2 Павел Сознаюсь, написал только догадку. Может есть какая-то технология. Надо покапаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2001, 01:30 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
)) Это вовсе не мистика! Если бы не было указателей на строки, то не было и индексов Система организации адресации MS SQl примерно следующая: Цитата { Указатель на строку (row locator или Row IDentificator, RID позволяет определить местоположение конкретной строки в базе данных и включает в себя информацию: ID file ID page slot number } .................... А по поводу недовольства того что select просматривает всё подряд могу посоветовать посмотреть параметр ROWCOUNT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2001, 14:59 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Да и ещё одна цитата: { 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2001, 15:04 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Цитата из 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. Доступ к нему неизвестен лучше просто использовать кластерный индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2001, 10:10 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
>>Все равно когда Вы скажете серверу 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+ номер страницы+ номер слота в ней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2001, 14:17 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Так за чем же дело стало? Быстро пишем программульку, которая бы считывала эти значения и быстренько находила бы данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2001, 17:32 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Прочитал дискуссию и ничего не понял - RID предназначен исключительно для внутреннего использования SQL Server'ом - мы к нему доступа не имеем. А если нужна оптимизация - ну так во все времена индексы для этого использовались... Или я не понял темы разговора? Помнится, когда я с dbf на Access перешел (ох давно это было) - тоже ломал голову - где же там номер записи-то? И как без него работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2001, 17:39 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Что есть "быстрый доступ" и для чего он понадобился многоуважаемой публике? Посмотреть внутреннее хранение данных на странице - dbcc для этого есть. Разобраться с внутренним хранением или просто почитать про это - " Inside MS SQL Server 2000 ", by Kalen Delaney - глава Tables, Internal storage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2001, 19:30 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
> > Разобраться с внутренним хранением или просто почитать про это - " Inside MS SQL Server > > 2000 ", by Kalen Delaney - глава Tables, Internal storage. А где берут такую книгу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 08:21 |
|
||
|
Оптимизированный доступ в MS SQL??????????
|
|||
|---|---|---|---|
|
#18+
Понятие ROWID из ORACLE в MSSQL отсутствует. (Впрочем и ORACLE его использовать не рекомендует, т.к. запись может мигрировать). MSSQL имеет свое понятие ROWID как элемент структуры хранения. Получить к нему доступ явным образом нельзя. Для более менее больших таблиц самый быстрый способ доступа - доступ с использованием кластерного индекса. Подробнее - в Books Online. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2001, 17:32 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32007094&tid=1826348]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 372ms |

| 0 / 0 |
