Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes
2015-10-24 14:07 GMT+02:00 Hellmuth Vargas: > Y porque no considerar FTS? Normalmente es una buena solución, si no te importan los falsos positivos ( porque me temo que te pueda devolver cosas como metodos, metodico y/o metodologia, ahora no tengo forma de probarlo ) y que el indice te salga algo mayor ( si no recuerdo al lo eran, pero no creo que importe si usas la flexibilidad que te da ). No conociendo bien el problema, yo creo que es lo mejor, y con lo que se dijo yo optaria probablemente por FTS+app filtering si hay algun falso positivo. ( habiendolo sugerido tu con anterioridad yo me limite a indicar como se hace para indexar sin acentos por si no queria FTS ) Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes
Un poco fuera de topico. No se como se traduce 'top posting' al castellano, y soy un poco nuevo en esta lista, pero es ¿costumbre por aqui ? 2015-10-24 14:01 GMT+02:00 Horacio Miranda: > Soundex es para eso, si lo quieres usar bien, de lo contrario debes hacer un > indice con todas las variantes que se te puedan imaginar. Soundex, si no recuerdo mal ( y si knuth ya la wikipedia se equivocan, ya que PSLM lo mire antes de contestarte la primera vez ), se invento para los nombres de la gente en ingles, no para textos genericos en cualquier idioma ( por eso descarta las vocales asi como "yhw" que no suelen dar mucha informacion ). El primer problema, tildes aparte, es que te va a dar lo mismo para metodo, metida, matado, medida, ... Lo he usado, y nisiquiera funciona bien para los nombres en castellano ( donde en general no suele ser necesario, dado que la pronunciacion es muy directa, normalmente con omitir tildes vas sobrao ). No tienes que hacer un indice con todas las variantes si quieres solo quitar tildes. Tienes que hacer un indice funcional y consultar por la funcion. Igual que para hacer una consulta que no distinga mayusculas de minusculas no hay que indexar or todas las variaciones, vale por indexar por la palabra en mayusculas y preguntar por la palabra en mayusculas. Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Desactivar y activar un trigger o constraint desde sentencia SQL
A programa cliente me refiero a un programa de gestión que se conecta a la db para obtener y volcar información y desde donde quiero hacer alguna tarea en la que en un momento determinado necesito desactivar por ejp un trigger. El programa para actualizar info hace UPDATE o DELETE y para obtenerla SELECT. ¿Qué intrucción se manda para activar-desactivar un trigger o una restricción? Ahora lo hago con pgAdmin manualmente. Me espero a actualizar. Por ahora va todo perfecto. Gracias Carlos Joaniquet Tamburini > El 24 oct 2015, a las 12:51, Francisco Olarte> escribió: > > Buenos dias: > > 2015-10-24 0:03 GMT+02:00 Carlos Joaniquet : >> Me gustarÃa saber si desde un programa cliente puedo desactivar y activar >> un trigger o constraint desde sentencia SQL para realizar alguna tarea de >> mantenimiento. > > ¿ A que le llamas un programa cliente ? El psql es un prgrama cliente, > el pgadmin otro y una aplicacion en java usando JDBC, p.e., otro. > Todos se comunican con la BD por un socket, al servidor le da igual. > De hecho el pgrestore es otro programa cliente que hace cosas de esas > mientras restaura, y las hace de la misma forma que cualquier otra > aplicacion, mandando cosas por un socket. > >> Por otro lado, a nivel informativo y que nada tiene que ver, si todo me va >> como un tiro, me conviene pasar de versión 9.1 a 9.3? Hay que hacer muchos >> cambios? > > Yo te recomendaria, si te vas a liar, pasar a la 9.4 ( que ya esta mas > testeadita y te dara mas tiempo antes de ser declarada fuera de > soporte ) ( o esperar a la 9.5 ). Yo cambie de 9.1 a 9.3 sin > problemas ( solo la ventana de mantenimiento para tener tiempo a hacer > dump/restore ). Lo que es mas critico en estas cosas suele ser si > puedes parar el sistema un rato para mover las cosas con calma, es > decir, dependes del tamaño de la BD mas que otra cosa, sin saber el > tiempo que tardarias en hacerlo y la posibilidad de parar es dificil > recomendar naa. > > Si tu setup te lo permite intenta restaurar un backup en una maquina > de pruebas y probar las aplicaciones, asi como medir el tiempo que > tardas en hacer un backup + restore, y aprendete como hacer restores > rapidos ( lo clasico, minimo log, fsync off, buena cantidad de buffers > porque solo hay un proceso tocando ). > > Francisco Olarte. > > - > Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) > Para cambiar tu suscripción: > http://www.postgresql.org/mailpref/pgsql-es-ayuda - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes
https://wiki.postgresql.org/wiki/SoundexESP On 10/25/2015 6:21 AM, Francisco Olarte wrote: Un poco fuera de topico. No se como se traduce 'top posting' al castellano, y soy un poco nuevo en esta lista, pero es ¿costumbre por aqui ? 2015-10-24 14:01 GMT+02:00 Horacio Miranda: Soundex es para eso, si lo quieres usar bien, de lo contrario debes hacer un indice con todas las variantes que se te puedan imaginar. Soundex, si no recuerdo mal ( y si knuth ya la wikipedia se equivocan, ya que PSLM lo mire antes de contestarte la primera vez ), se invento para los nombres de la gente en ingles, no para textos genericos en cualquier idioma ( por eso descarta las vocales asi como "yhw" que no suelen dar mucha informacion ). El primer problema, tildes aparte, es que te va a dar lo mismo para metodo, metida, matado, medida, ... Lo he usado, y nisiquiera funciona bien para los nombres en castellano ( donde en general no suele ser necesario, dado que la pronunciacion es muy directa, normalmente con omitir tildes vas sobrao ). No tienes que hacer un indice con todas las variantes si quieres solo quitar tildes. Tienes que hacer un indice funcional y consultar por la funcion. Igual que para hacer una consulta que no distinga mayusculas de minusculas no hay que indexar or todas las variaciones, vale por indexar por la palabra en mayusculas y preguntar por la palabra en mayusculas. Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Desactivar y activar un trigger o constraint desde sentencia SQL
Primer Link en google me muestra esto. http://stackoverflow.com/questions/3942258/how-do-i-temporarily-disable-triggers-in-postgresql On 10/25/2015 2:07 PM, Carlos Joaniquet wrote: A programa cliente me refiero a un programa de gestión que se conecta a la db para obtener y volcar información y desde donde quiero hacer alguna tarea en la que en un momento determinado necesito desactivar por ejp un trigger. El programa para actualizar info hace UPDATE o DELETE y para obtenerla SELECT. ¿Qué intrucción se manda para activar-desactivar un trigger o una restricción? Ahora lo hago con pgAdmin manualmente. Me espero a actualizar. Por ahora va todo perfecto. Gracias Carlos Joaniquet Tamburini El 24 oct 2015, a las 12:51, Francisco Olarteescribió: Buenos dias: 2015-10-24 0:03 GMT+02:00 Carlos Joaniquet : Me gustarÃa saber si desde un programa cliente puedo desactivar y activar un trigger o constraint desde sentencia SQL para realizar alguna tarea de mantenimiento. ¿ A que le llamas un programa cliente ? El psql es un prgrama cliente, el pgadmin otro y una aplicacion en java usando JDBC, p.e., otro. Todos se comunican con la BD por un socket, al servidor le da igual. De hecho el pgrestore es otro programa cliente que hace cosas de esas mientras restaura, y las hace de la misma forma que cualquier otra aplicacion, mandando cosas por un socket. Por otro lado, a nivel informativo y que nada tiene que ver, si todo me va como un tiro, me conviene pasar de versión 9.1 a 9.3? Hay que hacer muchos cambios? Yo te recomendaria, si te vas a liar, pasar a la 9.4 ( que ya esta mas testeadita y te dara mas tiempo antes de ser declarada fuera de soporte ) ( o esperar a la 9.5 ). Yo cambie de 9.1 a 9.3 sin problemas ( solo la ventana de mantenimiento para tener tiempo a hacer dump/restore ). Lo que es mas critico en estas cosas suele ser si puedes parar el sistema un rato para mover las cosas con calma, es decir, dependes del tamaño de la BD mas que otra cosa, sin saber el tiempo que tardarias en hacerlo y la posibilidad de parar es dificil recomendar naa. Si tu setup te lo permite intenta restaurar un backup en una maquina de pruebas y probar las aplicaciones, asi como medir el tiempo que tardas en hacer un backup + restore, y aprendete como hacer restores rapidos ( lo clasico, minimo log, fsync off, buena cantidad de buffers porque solo hay un proceso tocando ). Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] duda sobre indices
Buenos dias: 2015-10-22 22:44 GMT+02:00 Igniris Valdivia: > tengo un indice btree que contiene dos campos digamos id1 e id2 pues se debe > garantizar la unicidad de la combinacion de estos campos > ahora en la consulta donde la uso se usan los operadores igual e IN como por > ejemplo: > > id1=id3 AND id2 IN (1,2,3) > > y como el indice es compuesto la busqueda del IN la hace secuencial > que pudiera hacer para arreglar eso sin tener que crear un nuevo indice solo > para el capo id2 pues considero que esto ralentizaria aun mas la consulta en > lugar de optimizarla Como ya te han dicho, un explain analyze ayudaria. Añadire que ademas la definicion real de las tablas/indices es necesaria, el optimizador es un bicho complicado y diferencias pequeñas en las definciones pueden dar grandes diferencias en los resultados. ¿ Cuando dices que la busqueda la hace secuencial a que te refieres exactamente ? ¿ Secuencial en el resultado de buscar id1, en toda la tabla ? Dicho esto, en general un indice por (id1, id2) te vale para buscar por id1 o por ambos, pero no por id2. En tu caso puede que el opitmizador no llegue a entender todo el query, y a veces puedes mejorarlo pidiendo (id1=id2) and (id2=1 or id2=2 or id2=3), todo es cuestion de probar. Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes
2015-10-22 22:37 GMT+02:00 Horacio Miranda: > Por que no usar soundex ? > http://www.postgresql.org/docs/9.1/static/fuzzystrmatch.html ¿ Porque, segun el primer parrafo de la pagina a la que apuntas "The Soundex system is a method of matching similar-sounding names by converting them to the same code. It was initially used by the United States Census in 1880, 1900, and 1910. Note that Soundex is not very useful for non-English names.<" y el uso de tildes implica non-English names ? AFAIK el soundex NO esta definido si hay tildes y tira todas las vocales no iniciales. Yo en esos casos siempre he optado por hacer un folding si se conoce el alfabeto de entrada, algo como [select translate('Método', 'áéíóúñ','aeioun');]. Si se encapsula eso en una funcion SQL marcada como "strict inmutable" se puede hacer un indice por esa expresion y usarla en los queries ( si se hace cuidado, no se puede cambiar la funcion despues de crear el indice, por algo se marca immutable, hay que reindexar ). Yo he usado eso para cambiar las cosas mas habituales del latin1 a ascii ( la db era utf8, pero como los usuarios venian de windows, uno de los pocos SO que es unicode por dentro, los datos usaban solo, como es habitual, caracteres presentes en win1252), ya que tenia un problema similar. Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes
Hola lista Y porque no considerar FTS? El oct. 22, 2015 12:30 PM, "Hellmuth Vargas"escribió: > Hola Mauricio y lista > > > Yo le sugeriría emplear FTS (FULL TEXT SEARCH ENGINE) pues maneja tanto > las tildes como mayúsculas/minúsculas. El ejemplo básico (sin indices, > columnas precalculadas, etc) es: > > > SELECT * > FROM (VALUES ('perro'),('Método'),( > 'MÉTODO'),('metodo'),('casa'),('lote')) AS a(dato) > WHERE to_tsvector('spanish',a.dato) @@ plainto_tsquery('método'); > > > dato > > Método > MÉTODO > metodo > > (3 rows) > > > > > > > > El 22 de octubre de 2015, 12:09 p. m., mauricio pullabuestan< > jmaurici...@yahoo.es> escribió: > >> Buen día >> >> Tengo una tabla personal con un campo cargo en donde el usuario puede >> ingresar los cargos, existe registros en donde ingresa "Métodos" o >> "Metodos" lo cual es un problema. >> >> En Sql Server hay un parámetro de configuración donde le indicaba no >> distinguir acentos y otro parámetro para no distinguir entre mayúsculas y >> minúsculas y a los sql no tienen nada de especial. >> >> Existe en postgresq algo similar? >> >> Quiero evitar hacer esto: >> >> SELECT codigo, nombres >> FROM personal >> where cargo ILIKE '%Métodos%' Or cargo ILIKE '%Metodos%' >> ORDER BY nombres; >> >> Saludos. >> Mauricio >> > > > > -- > Cordialmente, > > Ing. Hellmuth I. Vargas S. > Esp. Telemática y Negocios por Internet > Oracle Database 10g Administrator Certified Associate > EnterpriseDB Certified PostgreSQL 9.3 Associate > >
Re: [pgsql-es-ayuda] Desactivar y activar un trigger o constraint desde sentencia SQL
Buenos dias: 2015-10-24 0:03 GMT+02:00 Carlos Joaniquet: > Me gustaría saber si desde un programa cliente puedo desactivar y activar un > trigger o constraint desde sentencia SQL para realizar alguna tarea de > mantenimiento. ¿ A que le llamas un programa cliente ? El psql es un prgrama cliente, el pgadmin otro y una aplicacion en java usando JDBC, p.e., otro. Todos se comunican con la BD por un socket, al servidor le da igual. De hecho el pgrestore es otro programa cliente que hace cosas de esas mientras restaura, y las hace de la misma forma que cualquier otra aplicacion, mandando cosas por un socket. > Por otro lado, a nivel informativo y que nada tiene que ver, si todo me va > como un tiro, me conviene pasar de versión 9.1 a 9.3? Hay que hacer muchos > cambios? Yo te recomendaria, si te vas a liar, pasar a la 9.4 ( que ya esta mas testeadita y te dara mas tiempo antes de ser declarada fuera de soporte ) ( o esperar a la 9.5 ). Yo cambie de 9.1 a 9.3 sin problemas ( solo la ventana de mantenimiento para tener tiempo a hacer dump/restore ). Lo que es mas critico en estas cosas suele ser si puedes parar el sistema un rato para mover las cosas con calma, es decir, dependes del tamaño de la BD mas que otra cosa, sin saber el tiempo que tardarias en hacerlo y la posibilidad de parar es dificil recomendar naa. Si tu setup te lo permite intenta restaurar un backup en una maquina de pruebas y probar las aplicaciones, asi como medir el tiempo que tardas en hacer un backup + restore, y aprendete como hacer restores rapidos ( lo clasico, minimo log, fsync off, buena cantidad de buffers porque solo hay un proceso tocando ). Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
Re: [pgsql-es-ayuda] Consulta que no tome en cuenta las tildes
Soundex es para eso, si lo quieres usar bien, de lo contrario debes hacer un indice con todas las variantes que se te puedan imaginar. On 10/24/2015 11:41 PM, Francisco Olarte wrote: 2015-10-22 22:37 GMT+02:00 Horacio Miranda: Por que no usar soundex ? http://www.postgresql.org/docs/9.1/static/fuzzystrmatch.html ¿ Porque, segun el primer parrafo de la pagina a la que apuntas "The Soundex system is a method of matching similar-sounding names by converting them to the same code. It was initially used by the United States Census in 1880, 1900, and 1910. Note that Soundex is not very useful for non-English names.<" y el uso de tildes implica non-English names ? AFAIK el soundex NO esta definido si hay tildes y tira todas las vocales no iniciales. Yo en esos casos siempre he optado por hacer un folding si se conoce el alfabeto de entrada, algo como [select translate('Método', 'áéíóúñ','aeioun');]. Si se encapsula eso en una funcion SQL marcada como "strict inmutable" se puede hacer un indice por esa expresion y usarla en los queries ( si se hace cuidado, no se puede cambiar la funcion despues de crear el indice, por algo se marca immutable, hay que reindexar ). Yo he usado eso para cambiar las cosas mas habituales del latin1 a ascii ( la db era utf8, pero como los usuarios venian de windows, uno de los pocos SO que es unicode por dentro, los datos usaban solo, como es habitual, caracteres presentes en win1252), ya que tenia un problema similar. Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda