mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-07-14 14:57:00 +10:00
initial commit of v5
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
-- Enable pg_stat_statements extension
|
||||
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
|
||||
|
||||
-- Enable other useful extensions
|
||||
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- UUID generation
|
||||
CREATE EXTENSION IF NOT EXISTS "pgcrypto"; -- Cryptographic functions
|
||||
CREATE EXTENSION IF NOT EXISTS "btree_gin"; -- GIN indexes for btree types
|
||||
CREATE EXTENSION IF NOT EXISTS "btree_gist"; -- GIST indexes for btree types
|
||||
|
||||
-- Create a function to reset pg_stat_statements (useful for debugging)
|
||||
CREATE OR REPLACE FUNCTION reset_query_stats()
|
||||
RETURNS void AS $$
|
||||
BEGIN
|
||||
PERFORM pg_stat_statements_reset();
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Create a view for easier query analysis
|
||||
CREATE OR REPLACE VIEW slow_queries AS
|
||||
SELECT
|
||||
query,
|
||||
calls,
|
||||
ROUND(total_exec_time::numeric, 2) AS total_time_ms,
|
||||
ROUND(mean_exec_time::numeric, 2) AS mean_time_ms,
|
||||
ROUND(max_exec_time::numeric, 2) AS max_time_ms,
|
||||
ROUND((100 * total_exec_time / SUM(total_exec_time) OVER ())::numeric, 2) AS percentage,
|
||||
rows
|
||||
FROM pg_stat_statements
|
||||
ORDER BY total_exec_time DESC;
|
||||
|
||||
-- Create a view for most frequent queries
|
||||
CREATE OR REPLACE VIEW frequent_queries AS
|
||||
SELECT
|
||||
query,
|
||||
calls,
|
||||
ROUND(mean_exec_time::numeric, 2) AS mean_time_ms,
|
||||
ROUND(total_exec_time::numeric, 2) AS total_time_ms,
|
||||
rows
|
||||
FROM pg_stat_statements
|
||||
ORDER BY calls DESC;
|
||||
|
||||
-- Notification for successful initialization
|
||||
DO $$
|
||||
BEGIN
|
||||
RAISE NOTICE 'Database initialized with pg_stat_statements and helper views';
|
||||
END $$;
|
||||
Reference in New Issue
Block a user