|
|
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivrange scan по индексу состоит из двух этапов 1) позиционирование по индексу на начало диапазона - Oi 2) сканирование таблицы в направлении возрастания диапазона до достижения конца диапазона. Ээ.... неужели в мире есть СУБД, в которой все действительно так? Или Вы говорите о range scan по индекс-организованной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 15:17 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivЕсли мы имеем одну таблицу, мы имеем O = Oi + Os Если, например, три, то O = Oi1 + Os1 + Oi2 + Os2 + Oi3 + Os3при всем при этом было бы круто, чтобы Вы рассматривали не какую-то свою задачу, а ту которую обсуждали здесь все. А именно: авторДопустим есть 10 таблиц(учет операций: оп.типа 1, оп.типа 2,..., оп.типа 10) с миллионом записей в каждой. 50 рабочих мест работает только с 1 операцией(у каждого места свой тип), 30 мест по 5 операций и 20 мест работают со веми операциями. При этом я говорил про случай: автор50 рабочих мест работает только с 1 операциейСоответственно, где здесь будет RangeScan по трем таблицам? Для 1 операции все запросы из одной таблицы идут при любом варианте хранения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 16:01 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
Bely пишет: > при всем при этом было бы круто, чтобы Вы рассматривали не какую-то свою > задачу, а ту которую обсуждали здесь все. Я ничего не понял из того, что вы (или кто-то там, не важно) писал про операции. Какие операции - не было конкретизировано. Но в общем случае смысла разбивать горизонтально таблицу на куски нет, если это конечно не VLDB. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 19:09 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > Ээ.... неужели в мире есть СУБД, в которой все действительно так? Или Вы > говорите о range scan по индекс-организованной таблице? Что значит индекс - организованная таблица ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 19:17 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivЧто значит индекс - организованная таблица ? Таблица, в которой записи физически размещены в порядке сортировки (то есть, например, изменение ключевого поля приводит к физическому перемещению записи). Index organized table в Oracle, table with clustered index в MSSQL итп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 19:24 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > Таблица, в которой записи физически размещены в порядке сортировки (то > есть, например, изменение ключевого поля приводит к физическому > перемещению записи). Index organized table в Oracle, table with > clustered index в MSSQL итп. Так бы сразу и сказал. Нет, я имел в виду не только это. Хотя в этом случае range index scan конечно более выгоден, чем в случае некластерного индекса. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 23:07 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivНет, я имел в виду не только это. Тогда описание идеологически неверно. Как минимум пропущен один этап, а как максимум все вообще по-другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2008, 23:14 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > Тогда описание идеологически неверно. Как минимум пропущен один этап, а > как максимум все вообще по-другому. Какой ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 01:46 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZiv> Тогда описание идеологически неверно. Как минимум пропущен один этап, а > как максимум все вообще по-другому. Какой ? Считывание диапазона индекса, сортировка адресов и собственно определение "начала и конца диапазона в таблице". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 02:05 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > Считывание диапазона индекса, ВСЕГО диапазона ? И куда же считывать будем ? сортировка адресов и собственно > определение "начала и конца диапазона в таблице". Зачем ? В общем, это наверное уже выходит за рамки разговора. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 11:19 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
Затем, что Вы говорите о сканировании таблицы "в направлении возрастания диапазона". Проблема в том, что минимальная и максимальная (с точки зрения фильтруемых значений) записи могут лежать рядышком в физической середине таблицы, в то время как промежуточные значения будут разбросаны по краям. Поэтому вариантов у нас два: либо сканировать индекс "по возрастанию", а дальше читать таблицу беспорядочно-поблочно сообразно тому, куда показывает очередной адрес, либо же прочитать диапазон индекса, составить список адресов блоков и их уже читать "по направлению возрастания". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 11:31 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ ничего не понял из того, что вы (или кто-то там, не важно) писал про операции. Какие операции - не было конкретизировано.в задаче не разобрались, а все туда же, делать выводы... Операции - бизнес операции, информация о которых сохраняется в БД. Какие именно операци, какие данные сохраняются - не важно. Это модель. MasterZivНо в общем случае смысла разбивать горизонтально таблицу на куски нет, если это конечно не VLDB.Обосновать можете почему нет? Некторые ПРЕДНАМЕРЕННО и ОБДУМАННО так делают. И самый главный вопрос - где будет выигрыш по скорости доступа с отдельными таблицами или с одной большой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 13:25 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer пишет: > тому, куда показывает очередной адрес, либо же прочитать диапазон > индекса, составить список адресов блоков и их уже читать "по направлению > возрастания". А у вас есть "направление возрастания блоков БД" ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 15:17 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZiv softwarer пишет: > тому, куда показывает очередной адрес, либо же прочитать диапазон > индекса, составить список адресов блоков и их уже читать "по направлению > возрастания". А у вас есть "направление возрастания блоков БД" ?У дисковых накопителей (которые являются наиболее распространенными накопителями для БД) есть особенность, что последовательное чтение заметно быстрее, чем хаотическое позиционирование магнитной головки. Так что это тоже имеет смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 19:41 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivА у вас есть "направление возрастания блоков БД" ? Боюсь, в первую очередь я не совсем понял Ваше удивление. О сканировании таблицы в направлении возрастания сказали Вы, я использую слова ровно в таком же смысле (надеюсь, мы согласны, что таблица состоит из блоков?) Во-вторых таки вообще говоря да. Дисковый накопитель выполняет команду "прочитать дорожку" значительно быстрее, нежели читает ту же дорожку посекторно, а головку на соседнюю дорожку позиционирует значительно быстрее, чем при путешествии через пол-диска. Поэтому если мы не будем стараться очень извратно разбросать фрагменты файлов БД по диску, чтение их по порядку даст выигрыш по сравнению со случайным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 20:06 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
загляните вот сюда плиз http://www.sql.ru/forum/actualthread.aspx?tid=562907 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2008, 22:05 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
Bely пишет: > У дисковых накопителей (которые являются наиболее распространенными > накопителями для БД) есть особенность, что последовательное чтение > заметно быстрее, чем хаотическое позиционирование магнитной головки. Современная СУБД чаще всего ничего про диск не знает. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2008, 12:15 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivСовременная СУБД чаще всего ничего про диск не знает. Что не мешает ей от него зависеть. Признаться, давно не обновлял сведения по архитектуре популярных файловых систем, но те, которые помню, оптимизированы именно под последовательное чтение файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2008, 12:26 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
MasterZivСовременная СУБД чаще всего ничего про диск не знает.Как же тогда MS SQL сервер работает с неразмеченными областями и дисками (raw) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2008, 12:26 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
softwarer MasterZivА у вас есть "направление возрастания блоков БД" ? Боюсь, в первую очередь я не совсем понял Ваше удивление. О сканировании таблицы в направлении возрастания сказали Вы, я использую слова ровно в таком же смысле (надеюсь, мы согласны, что таблица состоит из блоков?) Во-вторых таки вообще говоря да. Дисковый накопитель выполняет команду "прочитать дорожку" значительно быстрее, нежели читает ту же дорожку посекторно, а головку на соседнюю дорожку позиционирует значительно быстрее, чем при путешествии через пол-диска. Поэтому если мы не будем стараться очень извратно разбросать фрагменты файлов БД по диску, чтение их по порядку даст выигрыш по сравнению со случайным. Не очень понимаю, как это согласуется с многопользовательским и многозадачным режимами работы серверов (железных). Пока мы будем ждать результаты своего запроса, к серверу еще сто человек может обратиться, причем совсем не обязательно - именно через СУБД. И куда денется наше последовательное чтение, если в это же время с диска еще сто задач прочитают то, что им надо? Или сервер БД делает каждый свой запрос в монопольном режиме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2008, 19:08 |
|
||
|
Одна большая или несколько малентких таблиц
|
|||
|---|---|---|---|
|
#18+
Николай1Не очень понимаю, как это согласуется с многопользовательским и многозадачным режимами работы серверов (железных). Пока мы будем ждать результаты своего запроса, к серверу еще сто человек может обратиться, причем совсем не обязательно - именно через СУБД. И куда денется наше последовательное чтение, если в это же время с диска еще сто задач прочитают то, что им надо? Или сервер БД делает каждый свой запрос в монопольном режиме?Начнем с того, что любой запрос к одному диску (одному процессору, одной сетевой карте и пр.) выполняется в моно пользовательском режиме, пока не наступит переключение между задачами. Просто потому, что большинство устройств не умеет работать в параллельном режиме. Что касается жлступа к диску и СУБД. Именно для того, чтобы исключить влияние прочей нагрузки на подсистему ввода-выода, рекомендуют разносить по разным каналам и дискам данные БД и прочие данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2008, 12:03 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1543832]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
12ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
81ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 536ms |

| 0 / 0 |
