|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
Уважаемые гуру, подскажите, пожалуйста, почему так тормозит запрос? Имею 2 таблицы в одной 200000 строк, в другой миллион, делаю простой SELECT с JOIN, который непосредственно из pgadmin выполняется за 1 секунду, но стоит мне исполнить его же из Php с помощью pg_query, как он зависает минут на 10... PHP запускается на том же сервере, подключался и через TCP и через Unix socket, также пробовал форомить запрос в хранимую процедуру, но результат тот же... Почему так происходит? В логах ошибок нет, запрос отрабатывается, но очень долго. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 15:27 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
скорей всего pgadmin неявно для вас добавляет limit к запросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 15:47 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
IvanCУважаемые гуру, подскажите, пожалуйста, почему так тормозит запрос? Имею 2 таблицы в одной 200000 строк, в другой миллион, делаю простой SELECT с JOIN, который непосредственно из pgadmin выполняется за 1 секунду, но стоит мне исполнить его же из Php с помощью pg_query, как он зависает минут на 10... PHP запускается на том же сервере, подключался и через TCP и через Unix socket, также пробовал форомить запрос в хранимую процедуру, но результат тот же... Почему так происходит? В логах ошибок нет, запрос отрабатывается, но очень долго. А сколько строк в ответе и какой размер ответа? Включите заодно полный лог запросов в базе - будет понятнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 16:05 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
В ответе 20 строк примерно, если б добавлялся limit, то это заметно было бы через консоль. Завтра с логами попробую, думал, может в ресурсах дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 16:16 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
Я через консоль Linux выполнял тот же запрос, он тоже быстро выполнялся. Объем вообще ничтожный, 6 полей, в среднем по 5 символов varchar. Объединения по четырем полям, и все они с индексом. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 16:23 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
IvanCЯ через консоль Linux выполнял тот же запрос, он тоже быстро выполнялся. Объем вообще ничтожный, 6 полей, в среднем по 5 символов varchar. Объединения по четырем полям, и все они с индексом. Тогда полный лог запросов включайте и приводите выдержки оттуда при выполнении через php и через консоль. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 16:48 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
Если в pqsl и pgadmin отрабатывают корректно, то два варианта минимум , но все они не проблема postgresql 1. выполняется запрос отличный от тестового (например напутан тип параметра и индексы могут не работать, другие значения параметров) 2. проблема в самом php (попробовать другую версию). Но как правило всегда проблема в людях. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2019, 21:15 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
Включил полный лог. Все идет нормально до злополучной команды: сначала создается временная таблица, заполняется данными, потом индексы к ней, а в следующий момент происходит SELECT с объединением по 4 полям. На нем лог и останавливается. Никаких ошибок нет, саму строку копирую прямо из PGADMIN, пробовал выполнять так же хранимку. Все одно и то же... А на счет другой версии PHP, ведь PGADMIN на том же PHP и работает, причем я его устанавливал месяц назад, то есть он свежий. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 08:38 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
IvanCВключил полный лог. Все идет нормально до злополучной команды: сначала создается временная таблица, заполняется данными, потом индексы к ней, а в следующий момент происходит SELECT с объединением по 4 полям. На нем лог и останавливается. Никаких ошибок нет, саму строку копирую прямо из PGADMIN, пробовал выполнять так же хранимку. Все одно и то же... А на счет другой версии PHP, ведь PGADMIN на том же PHP и работает, причем я его устанавливал месяц назад, то есть он свежий. Так... фраза про временную таблицу уже интереснее... Вы про ВРЕМЕННУЮ таблицу ничего не говорили. Попробуйте после заливки временной таблицы и создания индексов вызвать ANALYZE на нее явным образом. Есть шансы что поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 10:18 |
|
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
|
|||
---|---|---|---|
#18+
IvanCВключил полный лог. Все идет нормально до злополучной команды: сначала создается временная таблица, заполняется данными, потом индексы к ней, а в следующий момент происходит SELECT с объединением по 4 полям. На нем лог и останавливается. Никаких ошибок нет, саму строку копирую прямо из PGADMIN, пробовал выполнять так же хранимку. Все одно и то же... А на счет другой версии PHP, ведь PGADMIN на том же PHP и работает, причем я его устанавливал месяц назад, то есть он свежий. добавьте begin в начале и end в конце и попробуйте еще раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.10.2019, 10:39 |
|
|
start [/forum/topic.php?fid=53&msg=39879095&tid=1994990]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 126ms |
0 / 0 |