Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT с клиента очень медленный, но из консоли или pgadmin моментально. / 11 сообщений из 11, страница 1 из 1
20.10.2019, 15:27
    #39878858
IvanC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
Уважаемые гуру, подскажите, пожалуйста, почему так тормозит запрос? Имею 2 таблицы в одной 200000 строк, в другой миллион, делаю простой SELECT с JOIN, который непосредственно из pgadmin выполняется за 1 секунду, но стоит мне исполнить его же из Php с помощью pg_query, как он зависает минут на 10... PHP запускается на том же сервере, подключался и через TCP и через Unix socket, также пробовал форомить запрос в хранимую процедуру, но результат тот же... Почему так происходит? В логах ошибок нет, запрос отрабатывается, но очень долго.
...
Рейтинг: 0 / 0
20.10.2019, 15:47
    #39878862
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
скорей всего pgadmin неявно для вас добавляет limit к запросу.
...
Рейтинг: 0 / 0
20.10.2019, 16:05
    #39878863
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
IvanCУважаемые гуру, подскажите, пожалуйста, почему так тормозит запрос? Имею 2 таблицы в одной 200000 строк, в другой миллион, делаю простой SELECT с JOIN, который непосредственно из pgadmin выполняется за 1 секунду, но стоит мне исполнить его же из Php с помощью pg_query, как он зависает минут на 10... PHP запускается на том же сервере, подключался и через TCP и через Unix socket, также пробовал форомить запрос в хранимую процедуру, но результат тот же... Почему так происходит? В логах ошибок нет, запрос отрабатывается, но очень долго.

А сколько строк в ответе и какой размер ответа?
Включите заодно полный лог запросов в базе - будет понятнее.
...
Рейтинг: 0 / 0
20.10.2019, 16:16
    #39878866
IvanC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
В ответе 20 строк примерно, если б добавлялся limit, то это заметно было бы через консоль. Завтра с логами попробую, думал, может в ресурсах дело.
...
Рейтинг: 0 / 0
20.10.2019, 16:23
    #39878870
IvanC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
Я через консоль Linux выполнял тот же запрос, он тоже быстро выполнялся. Объем вообще ничтожный, 6 полей, в среднем по 5 символов varchar. Объединения по четырем полям, и все они с индексом.
...
Рейтинг: 0 / 0
20.10.2019, 16:48
    #39878874
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
IvanCЯ через консоль Linux выполнял тот же запрос, он тоже быстро выполнялся. Объем вообще ничтожный, 6 полей, в среднем по 5 символов varchar. Объединения по четырем полям, и все они с индексом.

Тогда полный лог запросов включайте и приводите выдержки оттуда при выполнении через php и через консоль.
...
Рейтинг: 0 / 0
20.10.2019, 21:15
    #39878959
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
Если в pqsl и pgadmin отрабатывают корректно, то два варианта минимум , но все они не проблема postgresql
1. выполняется запрос отличный от тестового (например напутан тип параметра и индексы могут не работать, другие значения параметров)
2. проблема в самом php (попробовать другую версию).
Но как правило всегда проблема в людях.
...
Рейтинг: 0 / 0
21.10.2019, 08:38
    #39879060
IvanC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
Включил полный лог. Все идет нормально до злополучной команды: сначала создается временная таблица, заполняется данными, потом индексы к ней, а в следующий момент происходит SELECT с объединением по 4 полям. На нем лог и останавливается. Никаких ошибок нет, саму строку копирую прямо из PGADMIN, пробовал выполнять так же хранимку. Все одно и то же... А на счет другой версии PHP, ведь PGADMIN на том же PHP и работает, причем я его устанавливал месяц назад, то есть он свежий.
...
Рейтинг: 0 / 0
21.10.2019, 10:18
    #39879095
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
IvanCВключил полный лог. Все идет нормально до злополучной команды: сначала создается временная таблица, заполняется данными, потом индексы к ней, а в следующий момент происходит SELECT с объединением по 4 полям. На нем лог и останавливается. Никаких ошибок нет, саму строку копирую прямо из PGADMIN, пробовал выполнять так же хранимку. Все одно и то же... А на счет другой версии PHP, ведь PGADMIN на том же PHP и работает, причем я его устанавливал месяц назад, то есть он свежий.

Так... фраза про временную таблицу уже интереснее... Вы про ВРЕМЕННУЮ таблицу ничего не говорили.
Попробуйте после заливки временной таблицы и создания индексов вызвать ANALYZE на нее явным образом.
Есть шансы что поможет.
...
Рейтинг: 0 / 0
21.10.2019, 10:39
    #39879110
lr2
lr2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
IvanCВключил полный лог. Все идет нормально до злополучной команды: сначала создается временная таблица, заполняется данными, потом индексы к ней, а в следующий момент происходит SELECT с объединением по 4 полям. На нем лог и останавливается. Никаких ошибок нет, саму строку копирую прямо из PGADMIN, пробовал выполнять так же хранимку. Все одно и то же... А на счет другой версии PHP, ведь PGADMIN на том же PHP и работает, причем я его устанавливал месяц назад, то есть он свежий.

добавьте begin в начале и end в конце и попробуйте еще раз.
...
Рейтинг: 0 / 0
21.10.2019, 11:55
    #39879202
IvanC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT с клиента очень медленный, но из консоли или pgadmin моментально.
BEGIN-END не помогло, а вот ANALYZE, действительно, выручило! Сам бы я точно не догадался, ведь даже ACCESS запрос моментально исполнял. СПАСИБО!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT с клиента очень медленный, но из консоли или pgadmin моментально. / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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