@@ -133,6 +133,28 @@ SELECT create_hash_partitions('hash_rel', 'value', 100);
133133```
134134SELECT partition_data('hash_rel');
135135```
136+ Пример построения плана для запроса с фильтрацией по ключевому полю:
137+ ```
138+ SELECT * FROM hash_rel WHERE value = 1234;
139+ id | value
140+ ------+-------
141+ 1234 | 1234
142+
143+ EXPLAIN SELECT * FROM hash_rel WHERE value = 1234;
144+ QUERY PLAN
145+ -----------------------------------------------------------------
146+ Append (cost=0.00..2.00 rows=0 width=0)
147+ -> Seq Scan on hash_rel_34 (cost=0.00..2.00 rows=0 width=0)
148+ Filter: (value = 1234)
149+ ```
150+ Стоит отметить, что pg_pathman исключает из плана запроса родительскую таблицу, и чтобы получить данные из нее, следует использовать модификатор ONLY:
151+ ```
152+ EXPLAIN SELECT * FROM ONLY hash_rel;
153+ QUERY PLAN
154+ --------------------------------------------------------
155+ Seq Scan on hash_rel (cost=0.00..0.00 rows=1 width=8)
156+ ```
157+
136158###RANGE
137159Пример секционирования таблицы с использованием стратегии RANGE.
138160```
@@ -161,12 +183,30 @@ SELECT split_range_partition('range_rel_1', '2010-02-15'::date);
161183```
162184Добавим новую секцию в конец списка секций:
163185```
164- SELECT append_partition('range_rel')
186+ SELECT append_partition('range_rel');
187+ ```
188+ Пример построения плана для запроса с фильтрацией по ключевому полю:
165189```
190+ SELECT * FROM range_rel WHERE dt >= '2012-04-30' AND dt <= '2012-05-01';
191+ id | dt
192+ -----+---------------------
193+ 851 | 2012-04-30 00:00:00
194+ 852 | 2012-05-01 00:00:00
195+
196+ EXPLAIN SELECT * FROM range_rel WHERE dt >= '2012-04-30' AND dt <= '2012-05-01';
197+ QUERY PLAN
198+ ----------------------------------------------------------------------------
199+ Append (cost=0.00..60.80 rows=0 width=0)
200+ -> Seq Scan on range_rel_28 (cost=0.00..30.40 rows=0 width=0)
201+ Filter: (dt >= '2012-04-30 00:00:00'::timestamp without time zone)
202+ -> Seq Scan on range_rel_29 (cost=0.00..30.40 rows=0 width=0)
203+ Filter: (dt <= '2012-05-01 00:00:00'::timestamp without time zone)
204+ ```
205+
166206###Деакцивация pathman
167- Деактивировать pathman для некоторой ранее разделенной таблицы можно следующей командойdisable_pathman ():
207+ Деактивировать pathman для некоторой ранее разделенной таблицы можно следующей командойdisable_partitioning ():
168208```
169- SELECTdisable_pathman ('range_rel');
209+ SELECTdisable_partitioning ('range_rel');
170210```
171211Все созданные секции и данные останутся по прежнему доступны и будут обрабатываться стандартным планировщиком PostgreSQL.
172212###Ручное управление секциями