Buenas, Estuve procurando, nuevamente, en estos días, de ejecutar el Index Adviser con una carga de trabajo sql, pero sin éxito. Realmente no encuentro la herramienta pg_advise_index o pg_advise_index.exe para ejecutarla. Alguien tiene alguna idea de cómo puedo ejecutar la herramienta por favor? En al mail anterior copié lo que se indica en el README y en un archivo de ejemplo de sesión psql como explicación para la ejecución de la herramienta. Agradeceré mucho una respuesta, por favor. Saludos cordiales, Yesssica
El jue., 30 ago. 2018 a las 22:25, Yessica Brinkmann (< yessica.brinkm...@gmail.com>) escribió: > Buenas, > No sé si recordarán que en mi mail anterior había indicado que había > podido realizar las pruebas correspondientes del módulo del Index Adviser. > Bueno, resulta ser que había hecho las pruebas interactivas, manuales, con > psql. Y esto pude hacer todo. Y me funcionó todo correctamente. > Mi problema es ahora al realizar las pruebas con la herramienta, con un > archivo de carga de trabajo sql. No me había dado cuenta de que esta forma > de usar también existía, pero luego leí de nuevo el README y me di cuenta > de que también estaba allí. No sé hasta dónde esta pregunta también tenga > que ver ya con el Postgresql, ya que talvez ya es específico de la > herramienta. Pero hago la pregunta por si alguno de ustedes tenga una idea > de cómo ejecutar esta herramienta. > > Lo que dice el README en cuanto a esta herramienta es lo siguiente: > > pg_advise_index tool. > --------------------- > > Create a file that contains all the queries (semicolon terminated; > may > be multi-line) that are expected to be executed by the application; and > feed this file to the pg_advise_index tool with appropriate options. > > pg_advise_index -d DB -h host -U user -s 10M -o advisory.sql > workload.sql > > pg_advise_index will open a connection with the PostgreSQL server > by > setting appropriate session level options that will force the backend to > load > the pg_index_adviser plugin. It will then prepend the keywords EXPLAIN to > each > of the queries found in the workload file, and execute them against the > backend. > For each query EXPLAINed, the backend will generate advice for each index > that > might have been beneficial in executing these queries. > > At the end, pg_advise_index will enumerate all the indexes > suggested for > the current session, and output the CREATE INDEX statements for each of > them. > Optinally, if the -size option was specified, pg_advise_index will output > suggestions > for only those indexes, that fit into that size. > > En teoría esa es la forma de usar. > Y en una de las carpetas del módulo encontré un ejemplo de sesión del > advise index. > Y esto es lo que se encuentra en dicho archivo: > > $ cat workload.sql > select * from t where a = 100; > select * from t where b = 100; > select * from t where a = 100 and b = 100; > select * from t where a = 100 or b = 100; > select * from t1 where a = 100; > select * from t1 where b = 100; > select * from t1 where a = 100 and b = 100; > select * from t1 where a = 100 or b = 100; > select * from t, t1 where t.a = 100 and t1.a = 100 or t.b = 100 and t1.b = > 100; > > $ db/bin/pg_advise_index.exe -d postgres -h localhost -p 5432 -U test -o > create_index.sql workload.sql > load workload from file 'workload.sql' > Analyzing queries ......... done. > size = 2608 KB, benefit = 184483000.000000 > size = 2608 KB, benefit = 184481000.000000 > /* 1. t(b): size=2608 KB, benefit=184483000.00 */ > /* 2. t(a): size=2608 KB, benefit=184481000.00 */ > /* Total size = 5216KB */ > > $ cat create_index.sql > create index idx_t_1 on t (b); > create index idx_t_2 on t (a); > > Yo tengo ya el archivo workload.sql. Ya lo escribí. Lo que no puedo > encontrar en ninguna parte es esta herramienta pg_advise_index o > pg_advise_index.exe a la que hace referencia la explicación del readme y el > ejemplo. Ejecuté el comando find pero no la encuentro en ninguna parte. Por > más que ya está instalado el Index Adviser correctamente. Por las dudas, > también traté de correr la herramienta desde psql, haciendo previamente > load del index_adviser, pero tampoco funciona. Me dice que hay un error de > sintaxis cerca de pg_advise_index, error near pg_advise_index. Aunque no > creo que esa sea la manera correcta de ejecutar, por si acaso probé nomás > también. > Alguien tiene alguna idea de adonde puedo encontrar esa herramienta > pg_advise_index o pg_advise_index.exe para ejecutar? > Agradeceré mucho una respuesta. > Saludos cordiales, > Yessica >