|
|
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Не подскажите, почему при большом количестве записей в таблице, выборка из нее идет очень медленно? Кол-во записей - порядка 10 млн. Время выборки сравнивалось с другими СУБД (MS SQL Server, Oracle). Результат хуже раза в два, хотя на меньшем кол-ве записей (0,5 млн.), ИБ 6 был быстрее. Я думал проблема в испорченных индексах, пересоздал их - тот же результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 09:07:48 |
|
||
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
IB это все-таки "настольная" СУБД, у меня и на миллионе записей MSSQL его "делает" по скорости, раза в два !!! А его (MSSQL-я) делает Informix !!! в 3 раза !!! ;) ...так что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 09:13:31 |
|
||
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
А может у тя запрос кривой? А скока записей ты выгружаешь за раз? А настройки кэширования? Фрагментация диска? 10млн не шутка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 09:16:54 |
|
||
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
Таблица: CREATE TABLE tbl1 (id1 int, id2 int, str1 varchar) В ней есть еще поля, но они в данных запросах не учавствуют (еще два целочисленных поля) Запрос: SELECT id1 FROM tbl1 WHERE id2=<value1> AND str1=<value2> Индексы действительно не соответствуют данному запросу: CREATE INDEX ind1 ON tbl1(id1) CREATE INDEX ind2 ON tbl1(id2) Лучше было бы, видимо, CREATE INDEX ind1 ON tbl1(id2, str1, id1) За раз выбирается несколько тысяч записей, про кэширование - не знаю, все по-умолчанию. Фрагментация диска - все БД находятся на отдельных чистых дисках, фрагментации быть не должно. Просто, что странно, так это то, что будучи более бысрым на небольшом кол-ве записей, ИБ уступает на большем кол-ве. Может быть действительно, все дело в кэше? Не подскажите, где про это можно почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 09:35:42 |
|
||
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
Почитай А.Ковязин,С.Востриков "Мир InterBase". Настройки конфигурационного файла (DATABASE CASHE PAGES). Если несколько тысяч записей за раз - то конечно лучше не InterBase - он типичный OLTP сервер. При такой выборке оперативки не менее 200мб на сервак. Кстати, у тя какой сервер? IB? FB? Yf? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 09:46:36 |
|
||
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
У меня IB 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 09:52:56 |
|
||
|
Почему тормозит IB 6 при большом кол-ве записей?
|
|||
|---|---|---|---|
|
#18+
WHERE id2=<value1> AND str1=<value2> Вот и строй индекс CREATE INDEX ind1 ON tbl1(id2, str1) или CREATE INDEX ind1 ON tbl1(str1, id2) И смотри, какой эффективнее работает тот и оставишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2004, 10:08:56 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32574891&tid=1578382]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
195ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 484ms |

| 0 / 0 |
