powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите правильно ли я мыслю
12 сообщений из 37, страница 2 из 2
Подскажите правильно ли я мыслю
    #35882703
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vazhneckiуточняю для вторых танкистов :)
select * from .... where id in(N1,N2...N500)
где все N случайны
В таблице записей не 10 штук, а 10 миллионов, так, что даже половина не умещяется в кеше.

Так подет?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
C:\Documents and Settings\bely>sqlplus /nolog

SQL*Plus: Release  11 . 1 . 0 . 6 . 0  - Production on Fri Mar  20   18 : 22 : 23   2009 

Copyright (c)  1982 ,  2007 , Oracle.  All rights reserved.

SQL>
SQL> SELECT count(*), min(lg.id), max(lg.id) FROM act_oper_activ_log lg;

  COUNT(*) MIN(LG.ID) MAX(LG.ID)
---------- ---------- ----------
   23144511            1     74871623 

SQL>
SQL> set timing on
SQL> set autotrace on
SQL>
SQL> SELECT count(*), min(lg.id), max(lg.id) FROM act_oper_activ_log lg
   2   WHERE lg.id in (SELECT level* 100  from dual connect by level <  700 );

  COUNT(*) MIN(LG.ID) MAX(LG.ID)
---------- ---------- ----------
        588          100        69900 

Elapsed:  00 : 00 : 00 . 20 

...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882753
vazhnecki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какой размер одной записи в act_oper_activ_log ?

вот так с запасом:
SELECT count(*), min(lg.id), max(lg.id) FROM act_oper_activ_log lg
WHERE lg.id in (SELECT level*10000 from dual connect by level < 700);
предварительно сбросив дисковый кеш и сделав этот запрос только 1 раз без "предварительных тестов" которые заполнят кеш :)
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882762
vazhnecki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя даже так будет нереально. потому что записи будут читаться относительно последовательно с диска а значит с меньшей задержкой, но для теста пойдёт :)
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882812
vazhnecki,

ну вот заставил таки
в таблице 29 с небольшим млн записей

запрос select * from table where code in
(здесь 520 значений)

------ Performance info ------
Prepare time = 125ms
Execute time = 141ms
-----------------------------

справедлитвости ради должен сказать что
1. значения не совсем случайные
2. они "охватывают" только часть диапазона возможных значений поля code

однако это не мешает мне по прежнему утверждать, что проблем у мну с этим нет
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882847
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vazhneckiпотому что записи будут читаться относительно последовательно с диска
Какие глубокие познания СУБД и особенностей хранения на диске вылазят. Ужоснах.
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882918
vazhnecki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо у меня медленный HDD, но меньше секунды не получалось, так или иначе:

Prepare time = 125ms
Execute time = 141ms

=0.266 секунды

а это в 3 раза медленнее чем мне надо, максимум 0.1 секунда должна быть, для 10 запросов в секунду.


WildSeryvazhneckiпотому что записи будут читаться относительно последовательно с диска
Какие глубокие познания СУБД и особенностей хранения на диске вылазят. Ужоснах.
для вас я вижу секрет что данные отсортированы по ID, вот это действительно детский сад.

правда это моё предположение неверно потому что выборка из случайного списка ID всё равно сортируется по ID движком субд.
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882919
vazhnecki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot vazhnecki]Видимо у меня медленный HDD, но меньше секунды не получалось, так или иначе:

Prepare time = 125ms
Execute time = 141ms

=0.266 секунды

а это в 3 раза медленнее чем мне надо, максимум 0.1 секунда должна быть, для 10 запросов в секунду.
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882922
vazhnecki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тьфу. чёт я проглючил, конечно не последовательно.
но это не меняет сути, данные разбросаны по разным сегментам диска и скорость получения инфы ограничена скоростью доступа к дорожке диска
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882937
vazhnecki[quot vazhnecki]Видимо у меня медленный HDD, но меньше секунды не получалось, так или иначе:

Prepare time = 125ms
Execute time = 141ms

=0.266 секунды

а это в 3 раза медленнее чем мне надо, максимум 0.1 секунда должна быть, для 10 запросов в секунду.

Не знаю что там у тебя, а мну в качестве "сервера" обыкновенная десктопная машинка, не первой свежести

Prepare time - время подготовки запроса
Execute time - время его выполнения

если я воткну эти 5000 (5 тысяч) значений в таблицу, и сделаю соответствующую выборку
select t.* from table_data t,table_where w
where t.code=w.code

ну или последовательно 10 раз выполню запрос
select t.* from table_data t,table_where w
where t.code=w.code and w.nw = :nw

мне записи вернет я думаю за приемлемое время.

НЕ могу сейчас проверить, да и лень честно говоря

ЗЫ. Все-же еще раз советую обратиться в форум соответствующий твоей СУБД. Там больше пользы будет.
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35882943
Senya_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость совсем ГостьЗЫ. Все-же еще раз советую обратиться в форум соответствующий твоей СУБД. Там больше пользы будет.Разве это образумит вошедшего во вкус флудераста?
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35883012
vazhnecki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё, нашел решение для моего случая,
редко вызываемые ID будут периодически выноситься в отдельную таблицу, что уменьшит основную таблицу значительно.
...
Рейтинг: 0 / 0
Подскажите правильно ли я мыслю
    #35883201
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vazhneckiдля вас я вижу секрет что данные отсортированы по ID, вот это действительно детский сад.
Это если повезет.
Реально - нет.
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Подскажите правильно ли я мыслю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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