powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / 2 вопроса по psql
19 сообщений из 19, страница 1 из 1
2 вопроса по psql
    #39262750
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. как врубить
Код: sql
1.
set timing on

?

2. как заставить explain analyze показывать статистику по запросу?

примерно такую:

авторStatistics
----------------------------------------------------------
1 recursive calls
0 db block gets
4 consistent gets
0 physical reads
0 redo size
1433 bytes sent via SQL*Net to client
380 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)

14 rows processed

выделено болдом.
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262779
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c \timing вопрос снят, а как-то цикл простейший можно сделать?


Код: sql
1.
2.
for tab in (select ... ) loop
end loop; 



вот такой?
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262821
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson,

Ты оракл тоже изучал по форумам старательно избегая прочтение документации?
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262825
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по ораклу есть книги Кайта и Льюиса.

А по постгре ничего (

даже концепта как такового нет
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262859
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson,

У Постгрес-а отличная документация , в том числе переведённая .

В онлайн доступна книга Васильева "Работа с PostgreSQL".

Издательство PACKT выпустило несколько книг (возможно, список не полный уже):
Simon Riggs, Hannu Krosing
PostgreSQL 9 Administration Cookbook
PACKT, ISBN: 978-1-849510-28-8

Zoltan Boszormenyi, Hans-Jurgen Schonig
PostgreSQL Replication
PACKT, ISBN: 978-1-84951-672-3

Hannu Krosing, Kirk Roybal, Jim Mlodgenski
PostgreSQL Server Programmin
PACKT, ISBN: 978-1-84951-698-3

Gregory Smith
PostgreSQL 9.0 High Performance
PACKT, ISBN: 978-1-849510-30-1

Из них последняя — наиболее полезная для боевой настройки, доступны в бумажном и электронном виде.

От себя бы рекомендовал ещё:

Markus Winand
SQL Performance Explained
Markus Winand, sql-performance-explained.com, ISBN: 978-3-9503078-2-5
Доступна в online: http://use-the-index-luke.com/
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262884
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonc \timing вопрос снят, а как-то цикл простейший можно сделать?


Код: sql
1.
2.
for tab in (select ... ) loop
end loop; 



вот такой?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
postgres=# do $$
   declare 
      tab record; 
   begin 
      for tab in (select * from pg_tables limit 2) 
      loop 
         raise notice 'Table name: %', tab.tablename; 
      end loop; 
end;
$$;
NOTICE:  Table name: pg_statistic
NOTICE:  Table name: pg_type
DO


DO
PL/pgSQL
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262903
Alexius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov,

поддерживаю рекомендацию книги Gregory Smith. Она хоть и по 9.0 версии, но будет полезна и сейчас.
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262923
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovУ Постгрес-а отличная документация , в том числе переведённая .

В онлайн доступна книга Васильева "Работа с PostgreSQL".


вот эта выглядит хорошо.
Сайт укропский правда, ну да ладно, спасибо!
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262925
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ЛузановJonhsonc \timing вопрос снят, а как-то цикл простейший можно сделать?


Код: sql
1.
2.
for tab in (select ... ) loop
end loop; 



вот такой?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
postgres=# do $$
   declare 
      tab record; 
   begin 
      for tab in (select * from pg_tables limit 2) 
      loop 
         raise notice 'Table name: %', tab.tablename; 
      end loop; 
end;
$$;
NOTICE:  Table name: pg_statistic
NOTICE:  Table name: pg_type
DO


DO
PL/pgSQL

Мерси!

в принципе от нормального plsql малоотличимо


Код: sql
1.
raise notice 'Table name: %', tab.tablename; 

это dbms_output или raise_application_error ?
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262957
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhson
Код: sql
1.
raise notice 'Table name: %', tab.tablename; 

это dbms_output или raise_application_error ?
Не надо искать аналогии с ORACLE-ом. PL/pgSQL хоть и создавался изначально по образу PL/SQL, но уже давно развивается сам по себе.

В данном случае используется как `dbms_output`, хотя конструкция предназначена для исключений.
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262963
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonв принципе от нормального plsql малоотличимо
Тем не менее, разница есть. Кстати и в этом примере тоже.
Переменную цикла for нужно объявлять явно.

Jonhson
Код: sql
1.
raise notice 'Table name: %', tab.tablename; 

это dbms_output или raise_application_error ?
Этим можно реализовать и то, и то.
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39262999
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По книге - дочитал вот до такого:

авторНа выделенных серверах полезным объемом будет значение от 8 МБ до 2 ГБ. Объем может быть выше, если у вас большие активные порции базы данных, сложные запросы, большое число одновременных соединений, длительные транзакции, вам доступен большой объем оперативной памяти или большее количество процессоров. И, конечно же, не забываем об остальных приложениях. Выделив слишком много памяти для базы данных, мы можем получить ухудшение производительности. В качестве начальных значений можете попробовать следующие:

Начните с 4 МБ (512) для рабочей станции;

Средний объём данных и 256–512 МБ доступной памяти: 16–32 МБ (2048–4096);

Большой объём данных и 1–4 ГБ доступной памяти: 64–256 МБ (8192–32768);


честно говоря продолжать смысла не имеет, нужно что-то более новое явно.
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263001
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ЛузановТем не менее, разница есть. Кстати и в этом примере тоже.
Переменную цикла for нужно объявлять явно.
.

это скорее минус, тем более, всё равно толку от такого "объявления"...
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263029
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonПо книге - дочитал вот до такого:

авторНа выделенных серверах полезным объемом будет значение от 8 МБ до 2 ГБ. Объем может быть выше, если у вас большие активные порции базы данных, сложные запросы, большое число одновременных соединений, длительные транзакции, вам доступен большой объем оперативной памяти или большее количество процессоров. И, конечно же, не забываем об остальных приложениях. Выделив слишком много памяти для базы данных, мы можем получить ухудшение производительности. В качестве начальных значений можете попробовать следующие:

Начните с 4 МБ (512) для рабочей станции;

Средний объём данных и 256–512 МБ доступной памяти: 16–32 МБ (2048–4096);

Большой объём данных и 1–4 ГБ доступной памяти: 64–256 МБ (8192–32768);


честно говоря продолжать смысла не имеет, нужно что-то более новое явно.
С точки зрения доступной памяти — да, устарело. С точки зрения рекомендации отдавать базе не всю память, а не более 25% — в целом актуально.
Postgres работает с дисками и кэшем не так, как ORACLE, поэтому не надо копировать подход.

Почитайте https://www.keithf4.com/a-small-database-does-not-mean-small-shared_buffers/ (в начале ссылка на предшествующую статью).
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263036
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jonhsonчестно говоря продолжать смысла не имеет, нужно что-то более новое явно.
Шашечки - или ехать?
Jonhsonэто скорее минус, тем более, всё равно толку от такого "объявления"...
Переменная типа запись используется не только в циклах.
Городить ради мнимого упрощения сомнительную фичу никто не согласится.
Этот тип - достаточно универсальная штука, вы просто не распробовали.
Хотя на перле вы можете написать всё что угодно, с любым стилем написания текста.
Или - http://pgxn.org/dist/plv8/ установите
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263073
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНГородить ради мнимого упрощения сомнительную фичу никто не согласится.
Этот тип - достаточно универсальная штука, вы просто не распробовали.

не буду спорить, возможно вы правы...

ОКТОГЕНХотя на перле вы можете написать всё что угодно, с любым стилем написания текста.
Или - http://pgxn.org/dist/plv8/ установите
да пока psql и pgadmin хватает
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263077
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorovС точки зрения доступной памяти — да, устарело. С точки зрения рекомендации отдавать базе не всю память, а не более 25% — в целом актуально.

это не может быть актуально хотя бы по той причине, что память базе выделяют из предполагаемого кол-ва уникальных запросов + размера пула соединений ( предельное кол-во выделенных серверов).

Дальше прибавляют рекомендуемые требования для ОС, плюс на IO.

дальше плюс память на другой софт, если предполагается ставить. И в результате получаем, сколько памяти должно быть на машинке.



То есть идут от потребностей, а не от наличия на домашнем ПК, как видимо делает автор статьи
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263625
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JonhsonvyegorovС точки зрения доступной памяти — да, устарело. С точки зрения рекомендации отдавать базе не всю память, а не более 25% — в целом актуально.
это не может быть актуально хотя бы по той причине, что память базе выделяют из предполагаемого кол-ва уникальных запросов + размера пула соединений ( предельное кол-во выделенных серверов).
Дальше прибавляют рекомендуемые требования для ОС, плюс на IO.
дальше плюс память на другой софт, если предполагается ставить. И в результате получаем, сколько памяти должно быть на машинке.
То есть идут от потребностей, а не от наличия на домашнем ПК, как видимо делает автор статьи
Чтобы понять какая нужна машина, нужно кроме самой нагрузки знать особенности конкретного SQL сервера.
Даже тот же Том Кайт писал, что не надо опыт работы с предыдущим SQL сервером распространять на текущий.
Посетите семинары
http://postgrespro.ru/education/courses/DBA2
Видео гляньте.
У них же иногда проходят курсы про переучиванию ораклистов, вроде неплохо материал дают по личным впечатлениям.
...
Рейтинг: 0 / 0
2 вопроса по psql
    #39263749
Jonhson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНДаже тот же Том Кайт писал, что не надо опыт работы с предыдущим SQL сервером распространять на текущий.
Посетите семинары
http://postgrespro.ru/education/courses/DBA2
Видео гляньте.
У них же иногда проходят курсы про переучиванию ораклистов, вроде неплохо материал дают по личным впечатлениям.

вот это уже похоже на правду! Спасибо, а то мне подсовывали какие-то книги, где про 2 МБ буферного кэша рассказывалось
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / 2 вопроса по psql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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