|
|
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
Есть сервер под линуксом с Firebird-ом В базе есть view Если по этому VIEW сделать запрос типа: SELECT COUNT(*) FROM view_name скрипт (на PHP) надолго задумывается и так и не выводит результат. Пробовал через interbase-овский клиент - результат такой же - клиент просто подвисает так и не выдав результат. Есть идеи, куда копать ? Запросы к другим таблицам выполняются. Подозреваю что это может быть связано с VIEW. PS я с firebird-ом только недавно работаю поэтому не знаю какую еще информацию нужно пердоставить. Скажите я постараюсь выяснить. Или скажите что в доках почитать. Диалект - 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 00:42 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
а если дать запрос SELECT * FROM view_name тормоз есть? Да и еще, тормозит всегда или только в некоторых случаях? тоесть бывают моменты когда все Ок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 03:29 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
В базе 300 000 записей : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Ты бы написал как у тебя View написан, может тогда что-то можно будет подсказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 10:25 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
так наверное проблема связана с диалектами. Только что попробовал выполнить запрос SELECT FIRST 20 * FROM MAXTABLE в первом и третьем диалектах. В третьем - зависает, в первом выдается ошибка : Data type unknown Client SQL dialect 1 does not support reference to DATE datatype В VIEW есть поле типа DATE, поэтому я и пытаюсь использовать 3-ий диалект. View делал не я. Насколько я могу судить сделано оно так: Есть несколько десятков таблиц с одинаковыми полями DB1 DB1_eng DB1_ger ... (только не надо мне рассказывать что структура неверная, сам знаю, но как мне объяснили в ином случае какие-то проблемы с репликацией в Paradox. Вообщем я в подробности не лез) View делался примрно так: SELECT список полей FROM DB1 UNION SELECT список полей FROM DB1_eng ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 17:18 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
небольшое уточнение: В запросе SELECT FIRST 20 * FROM MAXTABLE MAXTABLE - это и есть VIEW ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 17:43 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
А примерно сколько записей в этих таблицах и сколько всего таблиц? В принципе многое зависит и от кол-ва UNION и условий выборки. Думаю надо смотреть что за план PLAN используется. Может индексы добавить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 17:51 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
таблиц - 47 записей - почти 50 000 (во view), соответственно в таблицах от 0 до 6000 записей Про plan - я пока не знаю что это, щас доки почитаю, если разберусь - напишу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:59 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
Попробуй выполнить твой запрос (SELECT * FROM view_name) в IBExpert. Тока дождись результата, это может занять даже несколько часов. Потом глянь анализ производительности. Очень может быть, что количество чтений из таблиц ооооочень большое, так бывает если "кривой" план запроса. У меня однажды запрос с выполнялся около часа, окозалось что чтений из одной таблицы было более 1 000 000! После оптимизации запроса, чтений стало максимум 4 000 и при этом запрос выполнялся менее секунды!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 08:04 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
Я вот тут подумал ... если 47 таблиц да еще UNION - тормоз 100%. Может все это решить написанием Хранимой процедуры. Там можно поизощряться ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 09:41 |
|
||
|
select count(*) ... - тормозит
|
|||
|---|---|---|---|
|
#18+
Мужики, спасибо всем кто откликнулся. Это view делали для меня (мне лень было с этими 47 таблицами работать, хотел с одной). Если view тормозит, прийдется с этой кучей таблиц работать :( 2 Fighter спасибо за совет, буду хоть знать как отлаживать SQL под Ibase, но с моим DialUp-ом и тем количеством данных выполнение запроса ждать прийдется очень долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2003, 03:30 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32186032&tid=1580353]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 503ms |

| 0 / 0 |
