Hola Al parecer yo veo un select a information_schema checa el mantenimiento a tu BD por que puede que sea lento el select por lo mismo (SELECT * FROM information_schema.tables WHERE table_name = nombre_tabla)
Gracias y excelente dia El 22 de marzo de 2012 17:10, Juan Carlos Ramirez Zambrano < juancarlosrz...@gmail.com> escribió: > Hola Lista, quiero consultar y ver si me pueden orientar con un problema > que se me presento con los insert en una tabla particionada > > El problema se presento de la nada, se implemento un trigger para insertar > los datos en tablas por dia, esta tabla recibio hasta las 14:00 horas > 4,951,257 millones de registros, esto se implemento a las 00:00 horas y > todo iva bien hasta las 14:00 horas cuando los inserte se empezaron hacer > muy lentos, es decir a tardar casi 1 segundo por insert. > > Agradezco cualquier ayuda que me puedan proporcionar para poder solucionar > este problema. Aqui dejo el trigger implementado. > > CREATE OR REPLACE FUNCTION monterrey.tabla_x_dia_v1() > RETURNS trigger AS > $BODY$ > DECLARE > nombre_tabla text:=''; > BEGIN > --Se obtiene la fecha a concatenar al nombre de la tabla > select 'tabla_'||substr(NEW.recibo::text,1,4) > ||'_'||substr(NEW.recibo::text,6,2) ||'_'|| substr(NEW.recibo::text,9,2) > into nombre_tabla; > > --Validamos si existe la tabla continuamos solo con el insert > IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name = > nombre_tabla) THEN > raise notice 'No existe la tabla, se crea como %',nombre_tabla; > > --Se ejecuta la creacion de la tabla correspondiete al dia > EXECUTE 'CREATE TABLE monterrey.' || nombre_tabla || '( CHECK( recibo >= > '''|| > substr(NEW.recibo::text,0,11)||' 00:00:00''' ||' and recibo<= '''|| > substr(NEW.recibo::text,0,11) ||' 23:59:59'')) INHERITS (esquema.tabla);'; > > --Se asignan los permisos correspondientes > EXECUTE 'GRANT ALL ON TABLE esquema.'||nombre_tabla||' TO " usuario ";'; > EXECUTE 'GRANT ALL ON TABLE esquema .'||nombre_tabla||' TO usuario ;'; > EXECUTE 'GRANT ALL ON TABLE esquema .'||nombre_tabla||' TO usuario ;'; > EXECUTE 'GRANT ALL ON TABLE esquema .'||nombre_tabla||' TO usuario ;'; > EXECUTE 'GRANT SELECT, UPDATE, INSERT ON TABLE > esquema .'||nombre_tabla||' TO usuario;'; > EXECUTE 'GRANT SELECT, UPDATE, INSERT ON TABLE > esquema .'||nombre_tabla||' TO usuario ;'; > EXECUTE 'GRANT SELECT, UPDATE, INSERT ON TABLE > esquema .'||nombre_tabla||' TO usuario ;'; > > --Se agrega la llave primaria de tabla > EXECUTE 'ALTER TABLE esquema.'||nombre_tabla||' ADD PRIMARY KEY (unidad, > economico, linea, hreal, recibo) USING INDEX TABLESPACE idx'; > --Se agregan sus indices > EXECUTE 'CREATE INDEX idx_fecins'||nombre_tabla||' ON > esquema.'||nombre_tabla||' USING btree > (fecins) TABLESPACE idx;'; > > EXECUTE 'CREATE INDEX idx_hreal_lin_eco'||nombre_tabla||' ON > esquema.'||nombre_tabla||' USING btree > (hreal, linea, economico) TABLESPACE idx;'; > > END IF; > > --Ejecutamos el insert del regsitro nuevo > EXECUTE 'insert into esquema.'|| nombre_tabla || > '(campo, campo1, > campo2,fecha,lati,long,paro,distancia,causa,velp,velm,alarma,hora, > > recibo,operador,campo1,campo2,pasarela,momento,sub_del,baj_del,blo_del,ala_del,sub_tra, > baj_tra, blo_tra,ala_tra,tipo,xy, panicos, aux_d, aux_t,oreja) > values ('''|| NEW.unidad || ''','|| NEW.economico || ',' || NEW.linea || > ','''|| NEW.hreal || ''','|| NEW.lat || ','|| NEW.lon ||','|| NEW.paro > ||','|| NEW.distancia || > ','''|| NEW.causa ||''',' || NEW.velp || ',' || NEW.velm || ',''' || > NEW.alarma || ''',' || NEW.hora || ',''' || NEW.recibo || ''',' || > NEW.operador || ',' || NEW.campo1 || > ',' || NEW.campo2 || ',' || NEW.pasarela || ',' || NEW.momento || ',' || > NEW.sub_del || ',' || NEW.baj_del || ',' || NEW.blo_del || ',' || > NEW.ala_del || ',' || NEW.sub_tra || > ',' || NEW.baj_tra || ',' || NEW.blo_tra || ',' || NEW.ala_tra || ',''' > || NEW.tipo || ''',''' || NEW.xy || ''',' || NEW.panicos || ',' || > NEW.aux_d || ',' || NEW.aux_t || ',' || NEW.oreja || > ');'; > > RETURN NULL; > END; > $BODY$ > LANGUAGE plpgsql VOLATILE > COST 100; > > > > > Saludos. > > LI. Juan Carlos Ramirez Z. > > j <juancarlosrz...@gmail.com> > -- ISC Miguel Angel Hernandez Moreno