Skip to content

Instantly share code, notes, and snippets.

@lfittl
Last active September 17, 2016 05:00
Show Gist options
  • Select an option

  • Save lfittl/f1da5bbfda4dcfcf36ff7517373bfe4d to your computer and use it in GitHub Desktop.

Select an option

Save lfittl/f1da5bbfda4dcfcf36ff7517373bfe4d to your computer and use it in GitHub Desktop.
Running ANALYZE (or other table-specific commands) across distributed tables in a Citus cluster
# Analyzes all distributed tables
export PGHOST=...
export PGUSER=citus
export PGPASSWORD=...
#export PGSSLMODE=require
export PGDATABASE=citus
export PARALLEL_FACTOR=4
psql -tA -F" " -c "SELECT logicalrelid::regclass||'_'||s.shardid, \
nodename, nodeport FROM pg_dist_shard s JOIN pg_dist_shard_placement p ON (s.shardid = p.shardid)" |
xargs -n 3 -P $PARALLEL_FACTOR sh -c "psql -h \$1 -p \$2 -c \"ANALYZE \$0\""
# Analyzes a specific distributed table
export PGHOST=...
export PGUSER=citus
export PGPASSWORD=...
#export PGSSLMODE=require
export PGDATABASE=citus
export TABLE_NAME=impressions
export PARALLEL_FACTOR=4
psql -tA -F" " -c "SELECT logicalrelid::regclass||'_'||s.shardid, \
nodename, nodeport FROM pg_dist_shard s JOIN pg_dist_shard_placement p ON (s.shardid = p.shardid) \
WHERE logicalrelid::regclass = '$TABLE_NAME'::regclass;" |
xargs -n 3 -P $PARALLEL_FACTOR sh -c "psql -h \$1 -p \$2 -c \"ANALYZE \$0\""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment