GP数据库 常用SQL语句
--1,查看列名以及类型 select upper(column_name) ,data_type from information_schema.columns where table_schema='ods_hs08' and lower(table_name)=lower('T_ods_hs08_secumreal'); --2,查看表名剔除分区表名 select a.tablename from pg_tables a where a.schemaname='ods_hs08' and a.tablename not in (select b.partitiontablename from pg_partitions b where b.schemaname='ods_hs08' ) ; --3,查分区表名 select parentpartitiontablename,partitiontablename,* from pg_partitions ; --4,查看gpload错误记录表 select * from gp_read_error_log('ext_gpload_reusable_2117d97e_5cf0_11e9_b169_2880239d54e8') where cmdtime > to_timestamp('1554971595.06'); select gp_read_error_log('ext_gpload_4a33e352_5f20_11e9_8223_2880239d54e8 '); --5,修改主键 alter table ods_htgs.ttrd_acc_balance_cash add constraint ttrd_acc_balance_cash_pkey primary key (cash_ext_accid, accid, currency); --或者在建表语句列后面加 CONSTRAINT ttrd_acc_balance_cash_pkey PRIMARY KEY (cash_ext_accid, accid, currency) --6,外键约束 alter table ods_htgs.ttrd_acc_secu add constraint fk_ttrd_acc_secu foreign key (cash_accid) references ods_htgs.ttrd_acc_cash (accid); --或者在建表语句列后面加 CONSTRAINT fk_ttrd_acc_secu FOREIGN KEY (cash_accid) REFERENCES ods_htgs.ttrd_acc_cash (accid) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION --7,字符转日期转数字 select * from ods_hs08.t_ods_hs08_his_entrust where to_number(to_char(to_date(init_date || '','yyyyMMdd'),'yyyyMMdd'),'99999999') between 20010101 and 20191201 --8,table_constraint语法: table_constraint is: [ CONSTRAINT constraint_name ] { UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] | PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] | CHECK ( expression ) | FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] } [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ] --9,查看数据库、表占用空间: select pg_size_pretty(pg_relation_size('schema.tablename')); select pg_size_pretty(pg_database_size('databasename')); --10,查看schema占用的空间: select pg_size_pretty(pg_relation_size(tablename)) from pg_tables t inner join pg_namespase d on t.schemaname=d.nspname group by d.nspname; -- 必须在数据库锁对应的存储系统里,至少保留30%的自由空间,日常巡检,哟啊检查存储空间的剩余容量; --11,查看数据分布情况: select gp_segment_id,count(*) from tablename group by 1; -- 如果数据分布不均匀,将发挥不了并行计算机的优势,严重影响性能; --12,查看锁信息: select locktype,database,c.relname,l.relation,l.transactionid,l.transaction,l.id,l.mode, l.granted,a.current_query from pg_locks l,pg_class c, pg_stat_activity a where l.relation=c.oid and l.pid =a.procpid order by c.relname; -- relname:表名 -- locktype、mode:标识锁的类型 --13,分区表信息 select * from pg_partitions a where a.schemaname='bib' and a.tablename='t_project_ibma1'
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/4982.html