Skip to content

Commit 35d8331

Browse files
committed
Update README.md
1 parent 20f3b16 commit 35d8331

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

README.md

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,52 @@
1-
# sr_plan
1+
# Save and restore query plans in PostgreSQL
2+
3+
## Build
4+
5+
Dependencies: >= Python 3.2, Mako, pycparser
6+
If you only have a Python you can use the virtual environment:
7+
```bash
8+
virtualenv env
9+
source ./env/bin/activate
10+
pip install -r ./requirements.txt
11+
```
12+
13+
Then you need to generate C code and compiled it:
14+
```bash
15+
make USE_PGXS=1 genparser
16+
make USE_PGXS=1
17+
make USE_PGXS=1 install
18+
```
19+
20+
and modify your postgres config:
21+
```
22+
shared_preload_libraries = 'sr_plan.so'
23+
```
24+
25+
## Usage
26+
In your db:
27+
```SQL
28+
CREATE EXTENSION sr_plan;
29+
```
30+
If you want to save the query plan is necessary to set the variable:
31+
```SQL
32+
set sr_plan.write_mode = true;
33+
```
34+
Now plans for all subsequent requests will be stored in the table sr_plans. It must be remembered that all requests will be maintained including duplicates.
35+
Making an example query:
36+
```SQL
37+
select query_hash from sr_plans where query_hash=10;
38+
```
39+
disable saving the query:
40+
```SQL
41+
set sr_plan.write_mode = false;
42+
```
43+
Now verify that your query is saved:
44+
```SQL
45+
select query_hash, enable, query, explain_jsonb_plan(plan) from sr_plans;
46+
```
47+
explain_jsonb_plan function allows you to display explain execute the plan of which lies in jsonb. By default, all the plans are off, you need enable it:
48+
```SQL
49+
update sr_plans set enable=true where query_hash=812619660;
50+
```
51+
(812619660 for example only)
52+
After that, the plan for the query will be taken from the sr_plans.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy