Si puede ser k crearas un script que se llamara por cron unos mometos ates para crear la tabla
Y pues has tus pruebas y comentanos como te fue!! gracias y excelente dia!! =) El 23 de marzo de 2012 11:34, Juan Carlos Ramirez Zambrano < juancarlosrz...@gmail.com> escribió: > tienes razon, de acuerdo a lo que estado revisando en manuales y foros, se > recomienda tener el indice del campo con el que realizas la aprticion. > > Voy a agregar el indice y a realizar pruebas, para ver que tal se comporta. > > O la otra opcion seria separa el proceso de crear la tabla o solo dejar el > trgger para el insert de la tabla del dia. > > El 23 de marzo de 2012 11:13, Miguel Angel Hernandez Moreno < > miguel.hdz....@gmail.com> escribió: > > Fijate que hay otro dato >> >> Tu haces el select con base a tu campo "recibo" >> >> select 'tabla_'||substr(NEW.recibo::text,1,4) >> ||'_'||substr(NEW.recibo::text,6,2) >> ||'_'|| substr(NEW.recibo::text,9,2) into nombre_tabla; >> >> Y tus indices estan >> -fecins >> -hreal, linea, economico >> >> Te falta el ndice para tu campo recibo que es por donde partcionas >> >> --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;'; >> >> Puede ser eso >> El 23 de marzo de 2012 11:10, Juan Carlos Ramirez Zambrano < >> juancarlosrz...@gmail.com> escribió: >> >> Ok deja revisar lo que comentas, en cuanto al mantenimiento no creo ya >>> que se tiene activo el autovaccum. >>> >>> Saludos. >>> >>> LI. Juan Carlos Ramirez Z. >>> >>> >>> >>> El 23 de marzo de 2012 11:04, Miguel Angel Hernandez Moreno < >>> miguel.hdz....@gmail.com> escribió: >>> >>> 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 >>>> >>>> >>> >> >> >> -- >> ISC Miguel Angel Hernandez Moreno >> >> > -- ISC Miguel Angel Hernandez Moreno