├── 0001_explain_analyze_buffers.md ├── 0002_how_to_troubleshoot_and_speedup_postgres_restarts.md ├── 0003_how_to_troubleshoot_long_startup.md ├── 0004_tuple_sparsenes.md ├── 0005_pg_stat_statements_part_1.md ├── 0006_pg_stat_statements_part_2.md ├── 0007_pg_stat_statements_part_3.md ├── 0008_how_to_speed_up_pg_dump.md ├── 0009_lsn_values_and_wal_filenames.md ├── 0010_flamegraphs_for_postgres.md ├── 0011_ad_hoc_monitoring.md ├── 0012_from_pgss_to_explain__how_to_find_query_examples.md ├── 0013_how_to_benchmark.md ├── 0014_how_to_decide_if_query_too_slow.md ├── 0015_how_to_monitor_index_operations.md ├── 0016_how_to_get_into_trouble_using_some_postgres_features.md ├── 0017_how_to_determine_the_replication_lag.md ├── 0018_over_indexing.md ├── 0019_how_to_import_csv_to_postgres.md ├── 0020_how_to_use_pg_restore.md ├── 0021_how_to_set_application_name_without_extra_queries.md ├── 0022_how_to_analyze_heavyweight_locks_part_1.md ├── 0023_how_to_use_openai_apis_in_postgres.md ├── 0024_how_to_work_with_metadata.md ├── 0025_how_to_quit_from_psql.md ├── 0026_how_to_check_btree_indexes_for_corruption.md ├── 0027_how_to_compile_postgres_on_ubuntu_22.04.md ├── 0028_how_to_work_with_arrays_part_1.md ├── 0029_how_to_work_with_arrays_part_2.md ├── 0030_how_to_deal_with_long-running_transactions_oltp.md ├── 0031_how_to_troubleshoot_a_growing_pg_wal_directory.md ├── 0032_how_to_speed_up_bulk_load.md ├── 0033_how_to_redefine_a_PK_without_downtime.md ├── 0034_how_to_perform_postgres_tuning.md ├── 0035_how_to_use_subtransactions_in_postgres.md ├── 0036_find-or-insert_using_a_single_query.md ├── 0037_how_to_enable_data_checksums_without_downtime.md ├── 0038_how_to_not_get_screwed_as_a_dba.md ├── 0039_how_to_break_a_database_part_1_how_to_corrupt.md ├── 0040_how_to_break_a_database_part_2_simulate_xid_wraparound.md ├── 0041_harmful_workloads.md ├── 0042_how_to_analyze_heavyweight_locks_part_2.md ├── 0043_how_to_format_sql.md ├── 0044_how_to_monitor_transaction_id_wraparound_risks.md ├── 0045_how_to_monitor_xmin_horizon.md ├── 0046_how_to_deal_with_bloat.md ├── 0047_how_to_install_postgres_16_with_plpython3u.md ├── 0048_how_to_generate_fake_data.md ├── 0049_how_to_use_variables_in_psql_scripts.md ├── 0050_pre_and_post_steps_for_benchmark_iterations.md ├── 0051_learn_about_schema_metadata_via_psql.md ├── 0052_how_to_reduce_wal_generation_rates.md ├── 0053_index_maintenance.md ├── 0054_how_to_check_btree_indexes_for_corruption.md ├── 0055_how_to_drop_a_column.md ├── 0056_how_to_imitate_production_planner.md ├── 0057_how_to_convert_a_physical_replica_to_logical.md ├── 0058_how_to_use_docker_to_run_postgres.md ├── 0059_psql_tuning.md ├── 0060_how_to_add_a_column.md ├── 0061_how_to_create_an_index_part_1.md ├── 0062_how_to_create_an_index_part_2.md ├── 0063_how_to_help_others.md ├── 0064_how_to_use_uuid.md ├── 0065_uuid_v7_and_partitioning_timescaledb.md ├── 0066_how_many_tuples_can_be_inserted_in_a_page.md ├── 0067_autovacuum_queue_and_progress.md ├── 0068_psql_shortcuts.md ├── 0069_howd_tod_addd_ad_checkd_constraintd_withoutd_downtime.md ├── 0070_how_to_add_a_foreign_key.md ├── 0071_how_to_understand_what_is_blocking_ddl.md ├── 0072_how_to_remove_a_foreign_key.md ├── 0073_how_to_analyze_heavyweight_locks_part_3_persistent_monitoring.md ├── 0074_how_to_flush_caches.md ├── 0075_how_to_find_unused_indexes.md ├── 0076_how_to_find_redundent_indexes.md ├── 0077_zero_downtime_major_upgrade.md ├── 0078_estimate_yoy_table_growth.md ├── 0079_rebuild_indexes_without_deadlocks.md ├── 0080_how_to_find_int4_pks_with_out_of_range_risks.md ├── 0081_how_to_plot_graphs_right_in_psql_on_macos_iterm2.md ├── 0082_how_to_draw_frost_patterns_using_sql.md ├── 0083_how_to_quickly_check_data_type_and_storage_size_of_a_value.md ├── 0084_how_to_find_the_best_order_of_columns_to_save_on_storage.md ├── 0085_how_to_quickly_check_data_type_and_storage_size_of_a_value.md ├── 0086_how_to_make_e_work_in_psql.md ├── 0087_how_to_change_ownership_of_all_objects_in_a_database.md ├── 0088_how_to_tune_linux_parameters_for_oltp_postgres.md ├── 0089_rough_oltp_configuration_tuning.md ├── 0090_how_to_use_lib_pgquery_in_shell.md ├── 0091_how_to_format_text_output_in_psql_scripts.md ├── 0092_how_to_tune_work_mem.md ├── 0093_how_to_troubleshoot_streaming_replication_lag.md ├── README.md └── files ├── 0002_cover.png ├── 0003_cover.png ├── 0004_cover.png ├── 0005_cover.png ├── 0006_cover.png ├── 0007_cover.png ├── 0008_cover.png ├── 0009_cover.png ├── 0010_cover.png ├── 0010_flamegraph.png ├── 0010_flamegraph.svg ├── 0010_perf_top_w_debug_symbols.png ├── 0010_perf_top_wo_debug_symbols.png ├── 0011_cover.png ├── 0012_cover_01.png ├── 0012_cover_03.png ├── 0013_cover.png ├── 0013_cover_02.png ├── 0013_cover_03.png ├── 0013_db_benchmark.png ├── 0014_cover.png ├── 0015_reindex.gif ├── 0018_degradation_with_indexes.png ├── 0018_flame_graph.png ├── 0018_plan_exec_time_vs_index.png ├── 0025_elephant_with_sunglasses.jpg ├── 0035_performance_drop_too_many_subtx.jpg ├── 0035_rolled_back_subtransaction_example.jpg ├── 0035_standby_server_killed.jpg ├── 0042_example_output.jpeg ├── 0044_wraparound_and_freeze.jpg ├── 0059_postgres_dba.jpg ├── 0059_pspg_improved_output.png ├── 0059_pspg_menus.jpg ├── 0059_psql_ugly_output.png ├── 0066-formula-1.gif ├── 0066-formula-2.gif ├── 0067_tables_to_be_autovacuumed.png ├── 0067_tables_to_be_autovacuumed_2.png ├── 0073_01.jpg ├── 0073_02.jpg ├── 0073_03.jpg ├── 0081_01.png ├── 0082_01.png ├── 0082_02.png ├── 0082_03.png └── 0091_result.png /0001_explain_analyze_buffers.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0001_explain_analyze_buffers.md -------------------------------------------------------------------------------- /0002_how_to_troubleshoot_and_speedup_postgres_restarts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0002_how_to_troubleshoot_and_speedup_postgres_restarts.md -------------------------------------------------------------------------------- /0003_how_to_troubleshoot_long_startup.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0003_how_to_troubleshoot_long_startup.md -------------------------------------------------------------------------------- /0004_tuple_sparsenes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0004_tuple_sparsenes.md -------------------------------------------------------------------------------- /0005_pg_stat_statements_part_1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0005_pg_stat_statements_part_1.md -------------------------------------------------------------------------------- /0006_pg_stat_statements_part_2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0006_pg_stat_statements_part_2.md -------------------------------------------------------------------------------- /0007_pg_stat_statements_part_3.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0007_pg_stat_statements_part_3.md -------------------------------------------------------------------------------- /0008_how_to_speed_up_pg_dump.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0008_how_to_speed_up_pg_dump.md -------------------------------------------------------------------------------- /0009_lsn_values_and_wal_filenames.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0009_lsn_values_and_wal_filenames.md -------------------------------------------------------------------------------- /0010_flamegraphs_for_postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0010_flamegraphs_for_postgres.md -------------------------------------------------------------------------------- /0011_ad_hoc_monitoring.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0011_ad_hoc_monitoring.md -------------------------------------------------------------------------------- /0012_from_pgss_to_explain__how_to_find_query_examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0012_from_pgss_to_explain__how_to_find_query_examples.md -------------------------------------------------------------------------------- /0013_how_to_benchmark.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0013_how_to_benchmark.md -------------------------------------------------------------------------------- /0014_how_to_decide_if_query_too_slow.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0014_how_to_decide_if_query_too_slow.md -------------------------------------------------------------------------------- /0015_how_to_monitor_index_operations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0015_how_to_monitor_index_operations.md -------------------------------------------------------------------------------- /0016_how_to_get_into_trouble_using_some_postgres_features.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0016_how_to_get_into_trouble_using_some_postgres_features.md -------------------------------------------------------------------------------- /0017_how_to_determine_the_replication_lag.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0017_how_to_determine_the_replication_lag.md -------------------------------------------------------------------------------- /0018_over_indexing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0018_over_indexing.md -------------------------------------------------------------------------------- /0019_how_to_import_csv_to_postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0019_how_to_import_csv_to_postgres.md -------------------------------------------------------------------------------- /0020_how_to_use_pg_restore.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0020_how_to_use_pg_restore.md -------------------------------------------------------------------------------- /0021_how_to_set_application_name_without_extra_queries.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0021_how_to_set_application_name_without_extra_queries.md -------------------------------------------------------------------------------- /0022_how_to_analyze_heavyweight_locks_part_1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0022_how_to_analyze_heavyweight_locks_part_1.md -------------------------------------------------------------------------------- /0023_how_to_use_openai_apis_in_postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0023_how_to_use_openai_apis_in_postgres.md -------------------------------------------------------------------------------- /0024_how_to_work_with_metadata.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0024_how_to_work_with_metadata.md -------------------------------------------------------------------------------- /0025_how_to_quit_from_psql.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0025_how_to_quit_from_psql.md -------------------------------------------------------------------------------- /0026_how_to_check_btree_indexes_for_corruption.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0026_how_to_check_btree_indexes_for_corruption.md -------------------------------------------------------------------------------- /0027_how_to_compile_postgres_on_ubuntu_22.04.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0027_how_to_compile_postgres_on_ubuntu_22.04.md -------------------------------------------------------------------------------- /0028_how_to_work_with_arrays_part_1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0028_how_to_work_with_arrays_part_1.md -------------------------------------------------------------------------------- /0029_how_to_work_with_arrays_part_2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0029_how_to_work_with_arrays_part_2.md -------------------------------------------------------------------------------- /0030_how_to_deal_with_long-running_transactions_oltp.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0030_how_to_deal_with_long-running_transactions_oltp.md -------------------------------------------------------------------------------- /0031_how_to_troubleshoot_a_growing_pg_wal_directory.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0031_how_to_troubleshoot_a_growing_pg_wal_directory.md -------------------------------------------------------------------------------- /0032_how_to_speed_up_bulk_load.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0032_how_to_speed_up_bulk_load.md -------------------------------------------------------------------------------- /0033_how_to_redefine_a_PK_without_downtime.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0033_how_to_redefine_a_PK_without_downtime.md -------------------------------------------------------------------------------- /0034_how_to_perform_postgres_tuning.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0034_how_to_perform_postgres_tuning.md -------------------------------------------------------------------------------- /0035_how_to_use_subtransactions_in_postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0035_how_to_use_subtransactions_in_postgres.md -------------------------------------------------------------------------------- /0036_find-or-insert_using_a_single_query.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0036_find-or-insert_using_a_single_query.md -------------------------------------------------------------------------------- /0037_how_to_enable_data_checksums_without_downtime.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0037_how_to_enable_data_checksums_without_downtime.md -------------------------------------------------------------------------------- /0038_how_to_not_get_screwed_as_a_dba.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0038_how_to_not_get_screwed_as_a_dba.md -------------------------------------------------------------------------------- /0039_how_to_break_a_database_part_1_how_to_corrupt.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0039_how_to_break_a_database_part_1_how_to_corrupt.md -------------------------------------------------------------------------------- /0040_how_to_break_a_database_part_2_simulate_xid_wraparound.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0040_how_to_break_a_database_part_2_simulate_xid_wraparound.md -------------------------------------------------------------------------------- /0041_harmful_workloads.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0041_harmful_workloads.md -------------------------------------------------------------------------------- /0042_how_to_analyze_heavyweight_locks_part_2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0042_how_to_analyze_heavyweight_locks_part_2.md -------------------------------------------------------------------------------- /0043_how_to_format_sql.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0043_how_to_format_sql.md -------------------------------------------------------------------------------- /0044_how_to_monitor_transaction_id_wraparound_risks.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0044_how_to_monitor_transaction_id_wraparound_risks.md -------------------------------------------------------------------------------- /0045_how_to_monitor_xmin_horizon.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0045_how_to_monitor_xmin_horizon.md -------------------------------------------------------------------------------- /0046_how_to_deal_with_bloat.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0046_how_to_deal_with_bloat.md -------------------------------------------------------------------------------- /0047_how_to_install_postgres_16_with_plpython3u.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0047_how_to_install_postgres_16_with_plpython3u.md -------------------------------------------------------------------------------- /0048_how_to_generate_fake_data.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0048_how_to_generate_fake_data.md -------------------------------------------------------------------------------- /0049_how_to_use_variables_in_psql_scripts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0049_how_to_use_variables_in_psql_scripts.md -------------------------------------------------------------------------------- /0050_pre_and_post_steps_for_benchmark_iterations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0050_pre_and_post_steps_for_benchmark_iterations.md -------------------------------------------------------------------------------- /0051_learn_about_schema_metadata_via_psql.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0051_learn_about_schema_metadata_via_psql.md -------------------------------------------------------------------------------- /0052_how_to_reduce_wal_generation_rates.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0052_how_to_reduce_wal_generation_rates.md -------------------------------------------------------------------------------- /0053_index_maintenance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0053_index_maintenance.md -------------------------------------------------------------------------------- /0054_how_to_check_btree_indexes_for_corruption.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0054_how_to_check_btree_indexes_for_corruption.md -------------------------------------------------------------------------------- /0055_how_to_drop_a_column.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0055_how_to_drop_a_column.md -------------------------------------------------------------------------------- /0056_how_to_imitate_production_planner.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0056_how_to_imitate_production_planner.md -------------------------------------------------------------------------------- /0057_how_to_convert_a_physical_replica_to_logical.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0057_how_to_convert_a_physical_replica_to_logical.md -------------------------------------------------------------------------------- /0058_how_to_use_docker_to_run_postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0058_how_to_use_docker_to_run_postgres.md -------------------------------------------------------------------------------- /0059_psql_tuning.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0059_psql_tuning.md -------------------------------------------------------------------------------- /0060_how_to_add_a_column.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0060_how_to_add_a_column.md -------------------------------------------------------------------------------- /0061_how_to_create_an_index_part_1.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0061_how_to_create_an_index_part_1.md -------------------------------------------------------------------------------- /0062_how_to_create_an_index_part_2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0062_how_to_create_an_index_part_2.md -------------------------------------------------------------------------------- /0063_how_to_help_others.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0063_how_to_help_others.md -------------------------------------------------------------------------------- /0064_how_to_use_uuid.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0064_how_to_use_uuid.md -------------------------------------------------------------------------------- /0065_uuid_v7_and_partitioning_timescaledb.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0065_uuid_v7_and_partitioning_timescaledb.md -------------------------------------------------------------------------------- /0066_how_many_tuples_can_be_inserted_in_a_page.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0066_how_many_tuples_can_be_inserted_in_a_page.md -------------------------------------------------------------------------------- /0067_autovacuum_queue_and_progress.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0067_autovacuum_queue_and_progress.md -------------------------------------------------------------------------------- /0068_psql_shortcuts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0068_psql_shortcuts.md -------------------------------------------------------------------------------- /0069_howd_tod_addd_ad_checkd_constraintd_withoutd_downtime.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0069_howd_tod_addd_ad_checkd_constraintd_withoutd_downtime.md -------------------------------------------------------------------------------- /0070_how_to_add_a_foreign_key.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0070_how_to_add_a_foreign_key.md -------------------------------------------------------------------------------- /0071_how_to_understand_what_is_blocking_ddl.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0071_how_to_understand_what_is_blocking_ddl.md -------------------------------------------------------------------------------- /0072_how_to_remove_a_foreign_key.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0072_how_to_remove_a_foreign_key.md -------------------------------------------------------------------------------- /0073_how_to_analyze_heavyweight_locks_part_3_persistent_monitoring.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0073_how_to_analyze_heavyweight_locks_part_3_persistent_monitoring.md -------------------------------------------------------------------------------- /0074_how_to_flush_caches.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0074_how_to_flush_caches.md -------------------------------------------------------------------------------- /0075_how_to_find_unused_indexes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0075_how_to_find_unused_indexes.md -------------------------------------------------------------------------------- /0076_how_to_find_redundent_indexes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0076_how_to_find_redundent_indexes.md -------------------------------------------------------------------------------- /0077_zero_downtime_major_upgrade.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0077_zero_downtime_major_upgrade.md -------------------------------------------------------------------------------- /0078_estimate_yoy_table_growth.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0078_estimate_yoy_table_growth.md -------------------------------------------------------------------------------- /0079_rebuild_indexes_without_deadlocks.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0079_rebuild_indexes_without_deadlocks.md -------------------------------------------------------------------------------- /0080_how_to_find_int4_pks_with_out_of_range_risks.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0080_how_to_find_int4_pks_with_out_of_range_risks.md -------------------------------------------------------------------------------- /0081_how_to_plot_graphs_right_in_psql_on_macos_iterm2.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0081_how_to_plot_graphs_right_in_psql_on_macos_iterm2.md -------------------------------------------------------------------------------- /0082_how_to_draw_frost_patterns_using_sql.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0082_how_to_draw_frost_patterns_using_sql.md -------------------------------------------------------------------------------- /0083_how_to_quickly_check_data_type_and_storage_size_of_a_value.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0083_how_to_quickly_check_data_type_and_storage_size_of_a_value.md -------------------------------------------------------------------------------- /0084_how_to_find_the_best_order_of_columns_to_save_on_storage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0084_how_to_find_the_best_order_of_columns_to_save_on_storage.md -------------------------------------------------------------------------------- /0085_how_to_quickly_check_data_type_and_storage_size_of_a_value.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0085_how_to_quickly_check_data_type_and_storage_size_of_a_value.md -------------------------------------------------------------------------------- /0086_how_to_make_e_work_in_psql.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0086_how_to_make_e_work_in_psql.md -------------------------------------------------------------------------------- /0087_how_to_change_ownership_of_all_objects_in_a_database.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0087_how_to_change_ownership_of_all_objects_in_a_database.md -------------------------------------------------------------------------------- /0088_how_to_tune_linux_parameters_for_oltp_postgres.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0088_how_to_tune_linux_parameters_for_oltp_postgres.md -------------------------------------------------------------------------------- /0089_rough_oltp_configuration_tuning.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0089_rough_oltp_configuration_tuning.md -------------------------------------------------------------------------------- /0090_how_to_use_lib_pgquery_in_shell.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0090_how_to_use_lib_pgquery_in_shell.md -------------------------------------------------------------------------------- /0091_how_to_format_text_output_in_psql_scripts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0091_how_to_format_text_output_in_psql_scripts.md -------------------------------------------------------------------------------- /0092_how_to_tune_work_mem.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0092_how_to_tune_work_mem.md -------------------------------------------------------------------------------- /0093_how_to_troubleshoot_streaming_replication_lag.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/0093_how_to_troubleshoot_streaming_replication_lag.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/README.md -------------------------------------------------------------------------------- /files/0002_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0002_cover.png -------------------------------------------------------------------------------- /files/0003_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0003_cover.png -------------------------------------------------------------------------------- /files/0004_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0004_cover.png -------------------------------------------------------------------------------- /files/0005_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0005_cover.png -------------------------------------------------------------------------------- /files/0006_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0006_cover.png -------------------------------------------------------------------------------- /files/0007_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0007_cover.png -------------------------------------------------------------------------------- /files/0008_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0008_cover.png -------------------------------------------------------------------------------- /files/0009_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0009_cover.png -------------------------------------------------------------------------------- /files/0010_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0010_cover.png -------------------------------------------------------------------------------- /files/0010_flamegraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0010_flamegraph.png -------------------------------------------------------------------------------- /files/0010_flamegraph.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0010_flamegraph.svg -------------------------------------------------------------------------------- /files/0010_perf_top_w_debug_symbols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0010_perf_top_w_debug_symbols.png -------------------------------------------------------------------------------- /files/0010_perf_top_wo_debug_symbols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0010_perf_top_wo_debug_symbols.png -------------------------------------------------------------------------------- /files/0011_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0011_cover.png -------------------------------------------------------------------------------- /files/0012_cover_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0012_cover_01.png -------------------------------------------------------------------------------- /files/0012_cover_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0012_cover_03.png -------------------------------------------------------------------------------- /files/0013_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0013_cover.png -------------------------------------------------------------------------------- /files/0013_cover_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0013_cover_02.png -------------------------------------------------------------------------------- /files/0013_cover_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0013_cover_03.png -------------------------------------------------------------------------------- /files/0013_db_benchmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0013_db_benchmark.png -------------------------------------------------------------------------------- /files/0014_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0014_cover.png -------------------------------------------------------------------------------- /files/0015_reindex.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0015_reindex.gif -------------------------------------------------------------------------------- /files/0018_degradation_with_indexes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0018_degradation_with_indexes.png -------------------------------------------------------------------------------- /files/0018_flame_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0018_flame_graph.png -------------------------------------------------------------------------------- /files/0018_plan_exec_time_vs_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0018_plan_exec_time_vs_index.png -------------------------------------------------------------------------------- /files/0025_elephant_with_sunglasses.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0025_elephant_with_sunglasses.jpg -------------------------------------------------------------------------------- /files/0035_performance_drop_too_many_subtx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0035_performance_drop_too_many_subtx.jpg -------------------------------------------------------------------------------- /files/0035_rolled_back_subtransaction_example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0035_rolled_back_subtransaction_example.jpg -------------------------------------------------------------------------------- /files/0035_standby_server_killed.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0035_standby_server_killed.jpg -------------------------------------------------------------------------------- /files/0042_example_output.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0042_example_output.jpeg -------------------------------------------------------------------------------- /files/0044_wraparound_and_freeze.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0044_wraparound_and_freeze.jpg -------------------------------------------------------------------------------- /files/0059_postgres_dba.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0059_postgres_dba.jpg -------------------------------------------------------------------------------- /files/0059_pspg_improved_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0059_pspg_improved_output.png -------------------------------------------------------------------------------- /files/0059_pspg_menus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0059_pspg_menus.jpg -------------------------------------------------------------------------------- /files/0059_psql_ugly_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0059_psql_ugly_output.png -------------------------------------------------------------------------------- /files/0066-formula-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0066-formula-1.gif -------------------------------------------------------------------------------- /files/0066-formula-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0066-formula-2.gif -------------------------------------------------------------------------------- /files/0067_tables_to_be_autovacuumed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0067_tables_to_be_autovacuumed.png -------------------------------------------------------------------------------- /files/0067_tables_to_be_autovacuumed_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0067_tables_to_be_autovacuumed_2.png -------------------------------------------------------------------------------- /files/0073_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0073_01.jpg -------------------------------------------------------------------------------- /files/0073_02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0073_02.jpg -------------------------------------------------------------------------------- /files/0073_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0073_03.jpg -------------------------------------------------------------------------------- /files/0081_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0081_01.png -------------------------------------------------------------------------------- /files/0082_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0082_01.png -------------------------------------------------------------------------------- /files/0082_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0082_02.png -------------------------------------------------------------------------------- /files/0082_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0082_03.png -------------------------------------------------------------------------------- /files/0091_result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/postgres-ai/postgres-howtos/HEAD/files/0091_result.png --------------------------------------------------------------------------------