11# Vizier
22
3- ** A database advisor and finetuner for DuckDB.**
3+ ** A physical design advisor for DuckDB.**
44
55---
66
@@ -18,8 +18,8 @@ When you have a DuckDB database, you are typically on your own to figure out thi
1818
1919There are tools like [ pg_qualstats] ( https://github.com/powa-team/pg_qualstats ) (for PostgreSQL) and
2020[ Database Engine Tuning Advisor] ( https://learn.microsoft.com/en-us/sql/relational-databases/performance/database-engine-tuning-advisor?view=sql-server-ver17 )
21- (for SQL Server) that try to solve these problems, but nothing equivalent exists for DuckDB.
22- Vizier aims to fill that gap.
21+ (for SQL Server) that try to solve these kinds of problems, but nothing equivalent exists for DuckDB.
22+ Vizier is a step towards filling that gap.
2323
2424## How It Works?
2525
@@ -46,6 +46,23 @@ select * from vizier_apply(1);
4646select * from vizier_benchmark(' select * from events where account_id = 42' , 10 );
4747```
4848
49+ ## When to Use Vizier?
50+
51+ Vizier is most useful for:
52+
53+ - Analyzing your query patterns and recommends the sort order and partitioning strategy for Parquet exports. Getting the
54+ sort order wrong means 10-100x worse row-group pruning.
55+ - Optimizing persistent DuckDB tables. If you have tables that get scanned repeatedly with the same filter patterns, Vizier identifies which columns
56+ to sort by for scan pruning.
57+ - Understanding workload patterns. ` vizier.workload_summary ` , ` vizier.inspect_table() ` , and ` vizier.overview() ` give you a quick picture of which
58+ tables and columns are under the most pressure. This can be useful when inheriting a database you did not build.
59+
60+ Vizier is less useful for:
61+
62+ - Ad-hoc notebook analysis (no repeating patterns).
63+ - Tiny datasets (DuckDB is already fast).
64+ - Read-only Parquet scans like reading Parquet files on an S3 bucket.
65+
4966## What Vizier Is Not
5067
5168Vizier is not an auto-tuner.
0 commit comments