quarta-feira, 30 de setembro de 2015

Site bacana que fala de comandos shell para quem trabalha com dados..


http://mazamascience.com/WorkingWithData/?p=213

segunda-feira, 28 de setembro de 2015

Mudar os índices de tablespace

Comandos a serem executados na CLI do servidor de banco de dados.


psql -t -d [NOME_DO_BANCO] -c "select 'ALTER INDEX '||schemaname||'.'||indexname||' SET TABLESPACE fastspace ;' from pg_catalog.pg_indexes order by tablename;" > temp.result
 

psql -d [NOME_DO_BANCO]  < temp.result

quarta-feira, 10 de junho de 2015

POSTGRES - Quais os bancos que ocupam mais espaço em disco?

 
SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS Size
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20
 
 
Fonte: https://wiki.postgresql.org/wiki/Disk_Usage 

POSTGRES - Quais os SQLs que estão demorando mais tempo para serem executados neste momento?


SELECT datname, usename, now()-query_start as tempo_execucao, waiting, client_addr, current_query FROM pg_stat_activity WHERE current_query <> ''order by 3 desc;


Versões de Postgres 9:
SELECT datname, usename, now()-query_start as tempo_execucao, waiting, client_addr, query FROM pg_stat_activity WHERE query <> ''order by 3 desc;

sexta-feira, 23 de janeiro de 2015

Como gerar os comandos GRANT de SELECT para Postgres anterior ao 9

1. Conectar no banco de dados

2. Executar: GRANT CONNECT ON DATABASE "nomeDoBanco" TO nomeDaRole;

3. Executar: GRANT USAGE ON SCHEMA public TO nomeDaRole;

4. Executar o comando ALTER DEFAULT PRIVILEGES IN SCHEMA public
   GRANT SELECT ON TABLES TO nomeDaRole;

5. Executar: GRANT SELECT ON ALL TABLES IN SCHEMA public TO nomeDaRole;


6. Se o PostgreSQL for anterior a versão 9 executar os comandos gerados por:


SELECT 'GRANT SELECT ON ' || relname || ' TO nomeDaRole;'
FROM pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
WHERE nspname = 'public' AND relkind IN ('r', 'v', 'S');


Fonte: http://stackoverflow.com/questions/760210/how-do-you-create-a-read-only-user-in-postgresql