

Вот сюда тыц: http://www.sai.msu.su/~megera/postgres/tal...tro.html#ftssql
Спустя 7 часов, 18 секунд (14.04.2009 - 22:17) kirik написал(а):
sergeiss, спасибо большое! Все так понятно расписано!
Я тут поставил postgresql 8.3 сервер, и phppgadmin 4.2 для управления. Он нормальный, или есть лучше варианты?
Кстати долго не мог установить пароль для дефолтного юзера..

Я тут поставил postgresql 8.3 сервер, и phppgadmin 4.2 для управления. Он нормальный, или есть лучше варианты?
Кстати долго не мог установить пароль для дефолтного юзера..

Спустя 22 минуты, 5 секунд (14.04.2009 - 22:39) sergeiss написал(а):
Я работаю с pgAdmin 3 (версия 1.8.2), выпущенной год тому назад (http://www.pgadmin.org). Есть пара мелких "замечаний", но жаловаться грех
Работает нормально всё, интуитивно понятный интерфейс.
Кстати. Упражнялся тут сегодня со встроенными функциями... Цель была сделать триггеры.
Взял реальные запросы из скриптов к реальной БД, которые выполняются за 30-50 секунд (много данных и несколько вложенностей в запросе). Текст запроса формируется в виде строки в скрипте ПХП. Загнал этот запрос с теми же параметрами в функцию внутри БД... И теперь получаю данные через 3-5 секунд
Я был в ауте, и много раз перепроверял.
Теперь ближайшие несколько дней буду "чисто конкретно" оптимизировать работу с БД. И будет всё у меня просто летать
Да и триггеры сделаю, чтобы кое-что убрать из скриптов в БД, да плюс к тому новый функционал получить.
PS. Я сейчас глянул - там версия 1.8.4 доступна. Пошел качать

Работает нормально всё, интуитивно понятный интерфейс.
Кстати. Упражнялся тут сегодня со встроенными функциями... Цель была сделать триггеры.
Взял реальные запросы из скриптов к реальной БД, которые выполняются за 30-50 секунд (много данных и несколько вложенностей в запросе). Текст запроса формируется в виде строки в скрипте ПХП. Загнал этот запрос с теми же параметрами в функцию внутри БД... И теперь получаю данные через 3-5 секунд



Теперь ближайшие несколько дней буду "чисто конкретно" оптимизировать работу с БД. И будет всё у меня просто летать

Да и триггеры сделаю, чтобы кое-что убрать из скриптов в БД, да плюс к тому новый функционал получить.
PS. Я сейчас глянул - там версия 1.8.4 доступна. Пошел качать

Спустя 39 минут, 26 секунд (14.04.2009 - 23:18) kirik написал(а):
Поставил pgAdmin 1.8.4 - интересная прога.
sergeiss, у тебя случаем не было проблемы, когда phpPgAdmin (который броузерный) не хочет логинить с тем же логином / паролем, которые я использую при коннекте через pgAdmin?
sergeiss, у тебя случаем не было проблемы, когда phpPgAdmin (который броузерный) не хочет логинить с тем же логином / паролем, которые я использую при коннекте через pgAdmin?
Цитата (sergeiss @ 14.04.2009 - 14:39) |
выполняются за 30-50 секунд...И теперь получаю данные через 3-5 секунд |

Спустя 3 минуты, 59 секунд (14.04.2009 - 23:22) waldicom написал(а):
Цитата (sergeiss @ 14.04.2009 - 20:39) |
Взял реальные запросы из скриптов к реальной БД, которые выполняются за 30-50 секунд (много данных и несколько вложенностей в запросе). Текст запроса формируется в виде строки в скрипте ПХП. Загнал этот запрос с теми же параметрами в функцию внутри БД... И теперь получаю данные через 3-5 секунд ![]() ![]() ![]() |
Интересно...
Если такая оптимизация на stored procedure, то хочу попробовать на mysql.
Хотя не понятно, откуда ей там взяться. На компиляцию и оптимизацию запроса уходит гораздо меньше времени, чем на выполнение...Странно...
Можешь пример запроса дать? Или там данных реально много и поэтому запрос так долго выполняется?
Спустя 7 минут, 51 секунда (14.04.2009 - 23:30) kirik написал(а):
Цитата (kirik @ 14.04.2009 - 15:18) |
sergeiss, у тебя случаем не было проблемы, когда phpPgAdmin (который броузерный) не хочет логинить с тем же логином / паролем, которые я использую при коннекте через pgAdmin? |
Все решил. В конфиге phpPgAdmin нужно поставить $conf['extra_login_security'] = false;.
Спустя 17 минут, 6 секунд (14.04.2009 - 23:47) kirik написал(а):
Круто! phpPgAdmin намного удобнее чем phpMyAdmin!
Похоже что в ПГ намного больше типов данных чем в мускуле, но нет привычных мускульных атрибутов (с первого взгляда не видать).
sergeiss, вот например в мускуле я могу выставить для типа INT атрибут unsigned, и тогда в это поле нельзя будет вставить отрицательное значение, и диапазон значений станет не от -2147483648 до 2147483647, а от 0 до 4294967295. В ПГ это решается установкой типа поля serial? Если так, то оно получается всего до 2147483647, а для хранения IP адресов нужно больше, а bigserial (до 9223372036854775807) использовать не очень оправданно. Как в таком случае поступить?
Похоже что в ПГ намного больше типов данных чем в мускуле, но нет привычных мускульных атрибутов (с первого взгляда не видать).
sergeiss, вот например в мускуле я могу выставить для типа INT атрибут unsigned, и тогда в это поле нельзя будет вставить отрицательное значение, и диапазон значений станет не от -2147483648 до 2147483647, а от 0 до 4294967295. В ПГ это решается установкой типа поля serial? Если так, то оно получается всего до 2147483647, а для хранения IP адресов нужно больше, а bigserial (до 9223372036854775807) использовать не очень оправданно. Как в таком случае поступить?
Спустя 34 минуты, 35 секунд (15.04.2009 - 00:22) sergeiss написал(а):
kirik - serial внутри себя имеет максимальную величину 9223372036854775807, вне зависимости от твоего желания
Если уж ты задал этот тип, то придется мириться (или радоваться?).
Кстати, можно "ресетить" величину этого serial, если очень надо.
Насчет phpPgAdmin сказать ничего не могу, никогда не пользовался
Мне более чем достаточно pgAdmin3. Который, кстати, содержит внутри себя очень хороший хэлп по Постгре.
waldicom - запрос вот, если интересно

Кстати, можно "ресетить" величину этого serial, если очень надо.
Насчет phpPgAdmin сказать ничего не могу, никогда не пользовался

waldicom - запрос вот, если интересно

SQL |
select * from ( select *, case sum401 when 0 then 100 else (sum401-sum402)*100./sum401 end as ho_errors_perc from ( select lac, cellid, lac_target, cellid_target, sum(c400) as sum400, sum(c401) as sum401, sum(c402) as sum402 from handovers where date_>='2009-01-01' and date_<='2009-01-22' and lac>=4300 and lac<=4319 group by lac, cellid, lac_target, cellid_target ) as ho_err ) as ho_err2 where ho_errors_perc >= 0 and ho_errors_perc <= 100 and sum400 >= 0 and sum400 <= 1000000 order by ho_errors_perc desc, sum400 desc, sum401 desc, sum402 desc |
Индексы есть все, что требуются.
Всего в настоящий момент в этой таблице чуть больше 44 млн. записей, к запросу имеют отношение (обрабатываются) около 60 тыс. записей, на выходе около 10 тыс. записей.
Я сейчас еще раз погонял запрос... 30-50 и 3-5 секунд - это я погорячился немного

Но всё равно с 16 секунд (при запуске "напрямую") до 4 секунд (при запуске из функции) уменьшается время.
С другими параметрами другое время, но раза в 3-4 быстрее получается.
Спустя 3 минуты, 59 секунд (15.04.2009 - 00:26) waldicom написал(а):
Да, запрос мощный... 2 вложенных select'а - это сильно...
А если попытаться разбить все это на несколько запросов, быстрее не будет? (хотя наверняка пытался?)
пысы. 44 млн записей - нифигасе.
А если попытаться разбить все это на несколько запросов, быстрее не будет? (хотя наверняка пытался?)
пысы. 44 млн записей - нифигасе.
Спустя 7 минут, 42 секунды (15.04.2009 - 00:34) sergeiss написал(а):
waldicom - любые мои попытки уменьшить "вложенность" селектов привели только к головной боли
, но не уменьшили время обработки данных.
Поэтому я оставил запрос в таком виде, т.к. он достаточно наглядно показывает, что я тут делаю. И, к тому же, это далеко не единственный запрос (есть и более "многоэтажные"). Поэтому наглядность запросов для меня тоже важна.

Поэтому я оставил запрос в таком виде, т.к. он достаточно наглядно показывает, что я тут делаю. И, к тому же, это далеко не единственный запрос (есть и более "многоэтажные"). Поэтому наглядность запросов для меня тоже важна.
Спустя 4 минуты, 23 секунды (15.04.2009 - 00:38) kirik написал(а):
Цитата (sergeiss @ 14.04.2009 - 16:22) |
Насчет phpPgAdmin сказать ничего не могу, никогда не пользовался smile.gif Мне более чем достаточно pgAdmin3. Который, кстати, содержит внутри себя очень хороший хэлп по Постгре. |
Согласен


Пока только разбираюсь, но мне уже все больше и больше начинает нравиться ПГ

Спустя 10 минут, 43 секунды (15.04.2009 - 00:49) sergeiss написал(а):
Цитата (kirik @ 15.04.2009 - 00:38) |
Просто удобнее когда ты не зависишь от софта, например чтобы зайти с другого компа нужно ставить pgAdmin3. |
Ты знаешь... Может быть это и так.
Но у меня лично такой проблемы никогда не возникало. Так как все основные разработки я веду на ноуте, на котором установлен pgAdmin (и локальная версия сайта, включаю локальную БД). Проблем нет.
Сервер, на котором стоит вся основная приблуда - тоже Винда, там установлен тот же pgAdmin. Я туда захожу через Remote Admin, когда в офисе, и спокойно делаю всё, что надо (либо с ноутбука, либо с другого, основного своего компа). А когда не в офисе, то доступа к офисной локалке у меня нету


Спустя 2 минуты, 32 секунды (15.04.2009 - 00:51) kirik написал(а):
Цитата (sergeiss @ 14.04.2009 - 16:49) |
Нету доступа - нету проблем |

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL
* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.
* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
