Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / 2 вопроса по psql / 19 сообщений из 19, страница 1 из 1
27.06.2016, 10:29
    #39262750
Jonhson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
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
27.06.2016, 11:23
    #39262779
Jonhson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
c \timing вопрос снят, а как-то цикл простейший можно сделать?


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



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

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

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

даже концепта как такового нет
...
Рейтинг: 0 / 0
27.06.2016, 13:17
    #39262859
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
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
27.06.2016, 13:51
    #39262884
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
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
27.06.2016, 14:14
    #39262903
Alexius
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
vyegorov,

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

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


вот эта выглядит хорошо.
Сайт укропский правда, ну да ладно, спасибо!
...
Рейтинг: 0 / 0
27.06.2016, 14:28
    #39262925
Jonhson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
Павел Лузанов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
27.06.2016, 15:03
    #39262957
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
Jonhson
Код: sql
1.
raise notice 'Table name: %', tab.tablename; 

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

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

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

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

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

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

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

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


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

это скорее минус, тем более, всё равно толку от такого "объявления"...
...
Рейтинг: 0 / 0
27.06.2016, 16:13
    #39263029
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
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
27.06.2016, 16:17
    #39263036
ОКТОГЕН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
Jonhsonчестно говоря продолжать смысла не имеет, нужно что-то более новое явно.
Шашечки - или ехать?
Jonhsonэто скорее минус, тем более, всё равно толку от такого "объявления"...
Переменная типа запись используется не только в циклах.
Городить ради мнимого упрощения сомнительную фичу никто не согласится.
Этот тип - достаточно универсальная штука, вы просто не распробовали.
Хотя на перле вы можете написать всё что угодно, с любым стилем написания текста.
Или - http://pgxn.org/dist/plv8/ установите
...
Рейтинг: 0 / 0
27.06.2016, 17:01
    #39263073
Jonhson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
2 вопроса по psql
ОКТОГЕНГородить ради мнимого упрощения сомнительную фичу никто не согласится.
Этот тип - достаточно универсальная штука, вы просто не распробовали.

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

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

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

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

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



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

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


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