SET variable { TO | = } { 'value' | DEFAULT } SET TIME ZONE { 'timezone' | LOCAL | DEFAULT } SET TRANSACTION ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } |
Par�metro glogal que se quiere fijar.
Nuevo valor del par�metro. Se puede utilizar el valor DEFAULT para especificar que se devuelve el par�metro a su valor de defecto.
Las variables posibles y los valores permitidos son:
Fija la codificaci�n para clientes mult-byte. Los par�metros son:
Fija la codificaci�n de cliente multi-byte a: value. La codificaci�n especificada debe estar soportada por el servidor.
Esta opci�n solo es utilizable si el soporte MULTIBYE se autoriz� durante el paso de configuraci�n en la construcci�n de Postgres.
Fija el estilo de representaci�n de fecha/hora. Afecta al formato de salida, y en algunos casos puede afectar a la interpretaci�n de la entrada.
utiliza fechas y horas de estilo ISO 8601.
utiliza fechas y horas de estilo Oracle/Ingres.
utiliza el formato tradicional de Postgres.
utiliza dd/mm/yyyy para la representaci�n num�rica de las fechas.
utiliza mm/dd/yyyy para la representaci�n num�rica de las fechas.
utiliza dd.mm.yyyy para la representaci�n num�rica de las fechas.
igual que 'NonEuropean'
recupera los valores de defecto ('US,Postgres')
La inicializaci�n del formato de la fecha se puede hacer:
Fijando la variable de entorno PGDATESTYLE. Si PGDATESTYLE se fija en el ambiente de una aplicaci�n de un cliente basado en libpq, libpq fijar� autom�ticamente DATESTYLE al valor de PGDATESTYLE durante el arranque de la conexi�n. |
Ejecutando postmastes utilizando la opci�n -o -e se fijan las fechas a la convenci�n Europea. N�tese que esto afecta s�lo a algunas combinaciones de estilos de fechas; por ejemplo, el estily ISO no se ve afectado por este par�metro. |
Cambiando las variables en src/backend/utils/init/globals.c. |
Las variables de globals.c que se pueden cambiar son:
bool EuroDates = false | true |
int DateStyle = USE_ISO_DATES | USE_POSTGRES_DATES | USE_SQL_DATES | USE_GERMAN_DATES |
Fija la codificaci�n multi-byte para el servidor.
Fija la codificaci�n multi-bye para el servidor.
Esta opci�n s�lo est� disponible si se habilit� el soporte MULTIBYTE durante el paso de configuraci�n de la construcci�n de Postgres.
Los valores posibles para timezone dependen de su sistema operativo. Por ejemplo, en Linux /usr/lib/zoneinfo contiene la base de datos de zonas horarias.
Aqu� tiene algunos valores v�lidos para zonas horarias:
situa la zona horaria de California.
sit�a la zona horaria de Portugal.
sit�a la zona horaria de Italia.
fija la zona horaria a su valor local. (el valor de la variable de entorno TZ).
Si se especifica una zona horaria invalida, ser� fijada a GMT (en la mayor�a de sistemas en cualquier caso).
La segunda sistaxis mostrada m�s arriba, permite fijar la zona horaria con una sintaxis similar a SET TIME ZONE de SQL92. La palabra clave LOCAL es s�lo un formato alternativo a DEFAULT para mantener la compatibilidad con SQL92.
Si la variable de entorno PGTZ se fija en el ambiente de la aplicaci�n de un cliente basado en libpq (en el ambiente del frontend), libpq fijar� autom�ticamente TIMEZONE al valor de PGTZ durante el arranque de la conexi�n.
Fija el nivel de aislamiento para la transacci�n actual.
Las consultas de la transacci�n actual leen s�lo filas aseguradas (committed) antes de empezar una consulta. READ COMMITTED es el valor de defecto.
El estandar SQL92 requiere que se fije el valor de aislamiento de defecto a SERIALIZABLE. |
Las consultas de la transacci�n llen s�lo fila aseguradas antes de la primera instrucci�n DML (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) que se ejecute en esta transacci�n.
Hay tambi�n varios par�metros internos o de optimizaci�n que se pueden especificar con el comando SET:
Fija la estimaci�n del optimizador del coste de una p�gina de disco le�da no secuencialmente. Eso se mide como un m�ltiplo del coste de una lectura de p�gina secuencial.
Fija el coste de un acceso aleatorio a un p�gina al valor punto flotante especificado.
Fija la estimaci�n que har� el optimizador del coste de procesar cada tupla durante una consulta. Esto se mide como una fracci�n del coste de una lectura secuencial de una p�gina.
Fija el coste de proceso de CPU por tupla al valor de de punto flotante especificado.
Fija la estimaci�n que har� el optimizador sobre el coste de procesar cada tupla del �ndice durante el procesado de un barrido del �ndice (index scan). Se mide como una fracci�n del coste de una lectura secuencial de p�gina.
Fija el coste de CPU de procesado por tupla de �ndice al valor de punto flotante especificado.
Fija la estimaci�n que har� el optimizador del coste de procesar cada operador en una cl�usula WHERE. Esto se mide como una fracci�n del coste de un acceso secuencial a una p�gina.
Fija le coste de CPU para procesar cada operador al valor de punto flotante especificado.
Fija la estimaci�n que har� el optimizador sobre el tama�o efectivo de la cach� en disco (es decir, la porci�n de la cach� en disco del kernel que ser� utilizada por los ficheros de datos de Postgres). Esto se mide en p�ginas de disco, normalmente en piezas de 8 Kb.
Fija el tama�o estimado de la cach� en el valor de punto flotante especificado.
Habilita o inhabilita el uso por el planificador de tipos de planes de barrido secuencial. (No es posible suprimir completamente los barridos secuenciales, pero desactivando esta variable se disuade al planificador de utilizar uno de ellos si dispone de otro m�todo utilizable).
Habilita el uso de barridos secuenciales (valor de defecto).
Inhabilita el uso de barridos secuenciales.
Habilita o inhabilita el uso por el planificador de tipos de planes de barrido de �ndices.
Habilita el uso de barridos de �ndices (valor de defecto).
Inhabilita el uso de barridos de �ndices.
Habilita o inhabilita el uso por el planificador de tipos tipos de planes por barrido TID.
Habilita el uso de barridos TID (valor de defecto).
Inhabilita el uso de barridos TID.
Habilita o inhabilita el uso por el planificador pasos de ordenaci�n expl�cita. (No es posible suprimir por completo las ordenaciones explititas, pero fijando en OFF esta variable disuade al planificador de usar uno cuando tiene otro m�todo utilizable.)
Habilita el uso de ordenaciones (valor de defecto).
Inhabilita el uso de ordenaciones.
Habilita o inhabilita el uso por el planificador de planes de join de blucle anidado. (No es posible suprimer por completo las joins de bucle anidado, pero fijar en OFF esta variable disuade al planificador de utilizar uno de ellos si dispone de otro m�todo).
Habilita el uso de joins de bucle anidado (valor de defecto).
Inshabilita el uso de joins de bucle anidado.
Habilita o inhabilita el uso por el planificador de planes de tipo "enlace intercalado" (mergejoin).
Habilita el uso de enlaces intercalados (valor de defecto).
Inhabilita el uso de enlaces intercalados.
Habilita o inhabilita el uso por el planificador de planes de tipo enlace hash (hashjoin).
Habilita el uso de enlaces hash (valor de defecto).
Inhabilita el uso de enlaces hash.
Fija el porcentaje de uso del algoritmo gen�rico del optimizador.
Habilita el algoritmo gen�rico del optimizador para instrucciones con 11 tablas o m�s. (Este es tambi�n el valor de defecto DEFAULT).
Toma un argumento entero para habilitar el algoritmo gen�rico para instrucciones con # o m�s tablas en la consulta.
Inhabilita el algoritmo gen�rico del optimizador.
Vea el cap�tulo sobre GEQO de la Gu�a del Programador para obtener m�s informaci�n sobre la optimizaci�n de la consulta.
Si la variable de entorno PGGEQO se fija en el ambiente de usuario de un cliente basado en libpq, libpq autom�ticamente fijar� GEQO al valor de PGGEQO durante el arranque de la conexi�n.
Key Set Query Optimizer (Optimizador de la Consulta Fijado por Clave) lleva al planificador de la consulta a convertir aquellas consultas cuyas cl�usulas WHERE incluyan muchas cl�usulas OR y AND (tales como "WHERE (a=1 AND b=2) OR (a=2 AND b=3) ...") en una consulta UNION. Este metodo puede ser m�s r�pido que la implementaci�n de defecto, pero no necesariamente produce exactamente el mismo resultado, puesto que UNION impl�titamente a�ade una cl�usula SELECT DISTINCT para eliminar las filas resultantes que sean identicas. KSQO se utiliza habitualmente cuando se trabaja con productos como MicroSoft Access, que tienden a generar las consultas de esta forma.
Habilita esta optimizaci�n.
Inhabilita esta optimizaci�n (valor de defecto).
Equivalente a especificar SET KSQO='OFF'.
El algoritmo KSQO se utilizaba por ser absolutamente esencial para consultas con muchas cl�usulas OR y AND, pero en Postgres 7.0 y posteriores, el planificador estandar manipula estas consultas correctamente.
SET modificar� los par�metros de configuraci�n para la variable durante una sesi�n.
Los valores en vigor se pueden obtener utilizando el SHOW, y los valores pueden devolverse a su situaci�n de defecto utilizando RESET. Valores y par�metros son sensibles a may�sculas y min�sculas. N�tese que el campo "valor" siempre se especifica como una cadena de caracteres, de modo que se encierra entre comillas simples.
SET TIME ZONE cambia la asignaci�n de zona horaria de defecto de la sesi�n. Una sesi�n SQL siempre empieza con un valor inicial de asignaci�n de zona horaria. La instrucci�n SET TIME ZONE se utiliza para cambiar la asignaci�n de zona horaria para la sesi�n SQL actual.
Fijar el estilo de la fecha a ISO:
SET DATESTYLE TO 'ISO'; |
SET GEQO ON=4; |
SET GEQO = DEFAULT; |
SET TIME ZONE 'PST8PDT'; SELECT CURRENT_TIMESTAMP AS ahora; ahora ---------------------- 1998-03-31 07:41:21-08 |
SET TIME ZONE 'Europe/Rome'; SELECT CURRENT_TIMESTAMP AS ahora; ahora ---------------------- 1998-03-31 17:41:31+02 |
No hay SET variable general en SQL92 (con la excepci�n de SET TRANSACTION ISOLATION LEVEL). La sintaxis de SQL92 para SET TIME ZONE es ligeramente diferente, que permite s�lo un �nico valor entero para la especificaci�n de la zona horaria:
SET TIME ZONE { expresi�n_de_valor_del_intervalo | LOCAL } |