[Pgsql-ayuda] Rendimiento Postgres

Felipe Barousse Boué fbarousse@piensa.com
28 Feb 2003 10:04:25 -0600


--=-t7fAVCannEuE9SuuaTQv
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Julio:

De por s=ED, el hacer query's a una BD (de hecho sea cual sea, PostgreSQL,
Oracle, etc), a trav=E9s de ODBC, causa un impacto adicional en los
tiempos del query. Por que ? Pues por que no estas trabajando con una
interface directa al motor de la BD sino por medio de una interface
"gen=E9rica" que hace la conversi=F3n de tu query al motor de la BD en
cuesti=F3n.  Eso es el ODBC, por ello, tu query tiene que ejecutar ese
c=F3digo extra (correspondiente al ODBC) cosa que requiere mas tiempo.

Ahora, creo importante que revises los par=E1metros de configuraci=F3n de t=
u
adaptador ODBC, especialmente  los relativos a logging y tracing. Si
estan activos, qu=EDtalos. Estos crean otro impacto fuerte en tiempos al
escribir a disco todo lo que hace el ODBC.

El fsync de PostgreSQL, aqui no creo que tengas mayor impacto o
relevancia. Por que? Por que de todas maneras tendr=E1s que leer del disco
(o discos) los datos de la BD. La primera vez que lo hagas ser=E1 la mas
lenta, las subsecuentes tal vez un poco mas r=E1pidas si tienes cache's
habilitados en tu servidor. El fsync mas bien lo relaciono a entradas de
datos a la BD, para no escribir autom=E1ticamente al disco cada cierto
tiempo (lo cual impacta en performance claro) pero con el consecuente
riesgo de p=E9rdida de informaci=F3n si sucede algo como fallar la
alimentaci=F3n el=E9ctrica.

Otro punto MUY importante y que tiene que ver con el que menciono en el
parr=E1fo de arriba y por supuesto con el performance es la cantidad de
memoria de tu servidor. mientras mas, mejor. Tengo BD en postgresql en
las mismas m=E1quinas que tu (Dell Optiplex GX-240) s=F3lo que con 512 MB, =
1
GB y 2 GB de RAM ; se hacen querys complejas y funcionan sin problema,
la memoria de seguro ayuda de manera significativa. 128 MB es poca
memoria,  sugiero aumentarla por lo menos a 256 o 512 MB

Por =FAltimo, tus =EDndices. Asegurate de manejar correctamente los indices
de tu base de datos, es decir, definir correctamente que campos son
llaves primarias, cuales estan indexados, etc.  Esto, si esta mal,
definitivamente har=E1 tu BD mas lenta.

Espero esta informaci=F3n te sea =FAtil.  Un saludo.

Felipe Barousse Bou=E9
Piensa Technologies - Bufete Consultor de M=E9xico
www.piensa.com


On Fri, 2003-02-28 at 08:37, Julian Cardona wrote:
> Hola lista, mi pregunta es la siguiente:
> Tengo RH 7.3,  corriendo postgres 7.2 ademas de los
> servicios normales, telnet, ftp etc. Tengo una BD con
> una tabla con 82.000 registros y hago un Select un
> poco pesado sobre esta y otras tablas utilizando el
> editor de consultas de Pgaccess, la consulta toma de
> 35 a 45 segundos en realizarce. Tengo un Dell Optiplex
> gx240 con Pentium IV, 128 en RAM y DD 20 Gb. Al hacer
> esta misma consulta desde una estaci=F3n windows por
> ODBC se demora unos 25 a 30 minutos. Alguien me puede
> decir cual es el problema?, porque se demora tanto? es
> ODBC el problema?, que me pueden recomendar para
> solucionarlo y para aumentar el performance de
> postgres.Mi archivo postgresql.conf es:
> (Alguien sabe una direcci=F3n en donde encuentre info
> detallada sobre las opciones de este archivo?, los
> signifocados de cada parametro y sus posibles valores,
> espero me puedan ayudar, de antemano gracias por la
> atanci=F3n).
> P.D: es recomendable cambiar el parametro fsync a
> falso para aumentar la velocidad? asi ante un eventual
> problema se pierdan datos? "fsync=3Dfalse".
>=20
> tcpip_socket =3D true
> #ssl =3D false
>=20
> max_connections =3D 500
>=20
> port =3D 5432
> #hostname_lookup =3D false
> #show_source_port =3D false
>=20
> #unix_socket_directory =3D ''
> #unix_socket_group =3D ''
> #unix_socket_permissions =3D 0777
>=20
> #virtual_host =3D ''
>=20
> #krb_server_keyfile =3D ''
>=20
>=20
> #
> #	Shared Memory Size
> #
> #shared_buffers =3D 64        # 2*max_connections, min
> 16
> shared_buffers =3D 1000        # 2*max_connections, min
> 16
> #max_fsm_relations =3D 100    # min 10, fsm is free
> space map
> #max_fsm_pages =3D 10000      # min 1000, fsm is free
> space map
> #max_locks_per_transaction =3D 64 # min 10
> #wal_buffers =3D 8            # min 4
>=20
> #
> #	Non-shared Memory Sizes
> #
> #sort_mem =3D 512             # min 32
> #vacuum_mem =3D 8192          # min 1024
>=20
>=20
> #
> #	Write-ahead log (WAL)
> #
> #wal_files =3D 0 # range 0-64
> #wal_sync_method =3D fsync   # the default varies across
> platforms:
> #			   # fsync, fdatasync, open_sync, or open_datasync
> #wal_debug =3D 0             # range 0-16
> #commit_delay =3D 0          # range 0-100000
> #commit_siblings =3D 5       # range 1-1000
> #checkpoint_segments =3D 3   # in logfile segments (16MB
> each), min 1
> #checkpoint_timeout =3D 300  # in seconds, range 30-3600
> #fsync =3D true
>=20
>=20
> #
> #	Optimizer Parameters
> #
> #enable_seqscan =3D true
> #enable_indexscan =3D true
> #enable_tidscan =3D true
> #enable_sort =3D true
> #enable_nestloop =3D true
> #enable_mergejoin =3D true
> #enable_hashjoin =3D true
>=20
> #ksqo =3D false
>=20
> #effective_cache_size =3D 1000  # default in 8k pages
> #random_page_cost =3D 4
> #cpu_tuple_cost =3D 0.01
> #cpu_index_tuple_cost =3D 0.001
> #cpu_operator_cost =3D 0.0025
>=20
>=20
> #
> #	GEQO Optimizer Parameters
> #
> #geqo =3D true
> #geqo_selection_bias =3D 2.0 # range 1.5-2.0
> #geqo_threshold =3D 11
> #geqo_pool_size =3D 0        # default based on #tables
> in query, range 128-1024
> #geqo_effort =3D 1
> #geqo_generations =3D 0
> #geqo_random_seed =3D -1     # auto-compute seed
>=20
>=20
> #
> #	Debug display
> #
> #silent_mode =3D false
>=20
> #log_connections =3D false
> #log_timestamp =3D false
> #log_pid =3D false
>=20
> #debug_level =3D 0 # range 0-16
>=20
> #debug_print_query =3D false
> #debug_print_parse =3D false
> #debug_print_rewritten =3D false
> #debug_print_plan =3D false
> #debug_pretty_print =3D false
>=20
> # requires USE_ASSERT_CHECKING
> #debug_assertions =3D true
>=20
>=20
> #
> #	Syslog
> #
> # requires ENABLE_SYSLOG
> #syslog =3D 0 # range 0-2
> #syslog_facility =3D 'LOCAL0'
> #syslog_ident =3D 'postgres'
>=20
>=20
> #
> #	Statistics
> #
> #show_parser_stats =3D false
> #show_planner_stats =3D false
> #show_executor_stats =3D false
> #show_query_stats =3D false
>=20
> # requires BTREE_BUILD_STATS
> #show_btree_build_stats =3D false
>=20
>=20
> #
> #	Access statistics collection
> #
> #stats_start_collector =3D true
> #stats_reset_on_server_start =3D true
> #stats_command_string =3D false
> #stats_row_level =3D false
> #stats_block_level =3D false
>=20
>=20
> #
> #	Lock Tracing
> #
> #trace_notify =3D false
>=20
> # requires LOCK_DEBUG
> #trace_locks =3D false
> #trace_userlocks =3D false
> #trace_lwlocks =3D false
> #debug_deadlocks =3D false
> #trace_lock_oidmin =3D 16384
> #trace_lock_table =3D 0
>=20
>=20
> #
> #	Misc
> #
> #dynamic_library_path =3D '$libdir'
> #australian_timezones =3D false
> #authentication_timeout =3D 60    # min 1, max 600
> #deadlock_timeout =3D 1000
> #default_transaction_isolation =3D 'read committed'
> #max_expr_depth =3D 10000         # min 10
> #max_files_per_process =3D 1000   # min 25
> #password_encryption =3D false
> #sql_inheritance =3D true
> #transform_null_equals =3D false
>=20
>=20
>=20
> _________________________________________________________
> Do You Yahoo!?
> Informaci=F3n de Estados Unidos y Am=E9rica Latina, en Yahoo! Noticias.
> Vis=EDtanos en http://noticias.espanol.yahoo.com
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda
--=20
Felipe Barousse Boue.
CEO - Director General
Piensa Technologies - Bufete Consultor de Mexico
www.piensa.com

--=-t7fAVCannEuE9SuuaTQv
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQA+X4iELAvKgbXVX78RAlJCAJ9uMiXKQ6G/Aunn1rVOUepJz3ebFQCffJAd
N1LAPAcpESwRgBaP2AivzAQ=
=Og4f
-----END PGP SIGNATURE-----

--=-t7fAVCannEuE9SuuaTQv--