UPDATE: Только что пришло мне в голову: возможно ли, что pgAdmin подсчитывает не фактическое время запроса, а время, необходимое для получения результатов в сетке?Неудовлетворительная производительность по запросу PostgreSQL
Я просто выполнил запрос с помощью командной строки (psql) и вывел результаты в файле txt, и это было очень быстро (1-2 секунды).
В этом случае проблема не является конфигурацией сервера postgresql/ubuntu; это скорее проблема адаптера дисплея.
Я прав или искал в неправильном направлении?
На моей "старой" ПК (Core 2 Duo, 4 Гб оперативной памяти, 250GB SATA HD) работает на Arch Linux 64bit я могу запустить простой "SELECT * FROM sometable" запрос в 0.4ms (я использую pgAdmin 3). База данных представляет собой PostgreSQL 9.1 (с PostGIS), а таблица содержит около 60 000 строк.
Я перенес базу данных на новый компьютер (Core i5, 8 ГБ оперативной памяти, 1 ТБ Western Digital Black SATA III), и тот же запрос занимает целых 22 секунды (!!!) На новом компьютере работает Ubuntu Сервер 13.04 64 бит.
Для дальнейшего тестирования я скопировал базу данных на 64-битный ПК под управлением Windows 7 (Core i5, RAM 6 ГБ), и запрос выполняется примерно через 10 секунд.
Это явно проблема конфигурации, но я немного смущен, является ли это проблемой конфигурации PostgreSQL или Ubuntu.
Я уже пытался поиграть с конфиг-файлами PostgreSQL (kernel.shmmax, shared_buffers и т. Д.), Но безрезультатно. И, конечно же, у меня есть VACUUMED, VACUUM ANALYZED и воссозданы все индексы.
Любые идеи? Меня интересует решение Ubuntu Server, которое действительно не заботится о компьютере под управлением Windows 7.
Спасибо заранее,
EBL
Вы просматривали планы запросов на разных машинах? 'EXPLAIN ANALYZE'? –
Да. Я просто сделал это снова (на машинах Ubuntu и Windows 7, на данный момент у меня нет доступа к Arch Linux). Планы запросов почти идентичны. – eblOnSO
, а не pgAdmin, я бы пошел с psql и 'EXPLAIN ANALYZE', извлекая сетку из уравнения. –