0% encontró este documento útil (0 votos)
261 vistas32 páginas

Informix 12.10 Sysmaster

El documento es un recopilatorio de consultas SQL para Informix, abarcando versiones 10 a 12, que permite acceder a información interna del motor de base de datos. Incluye secciones sobre el sistema, estadísticas de uso, y detalles sobre sesiones y transacciones, proporcionando ejemplos de consultas para cada tema. Es una guía útil para administradores de bases de datos que buscan optimizar y monitorear el rendimiento del sistema.

Cargado por

carlos.perez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • Consultas de estadísticas de l…,
  • Bloqueos,
  • Consultas de DBSpaces,
  • Manejo de errores,
  • Consultas de chunks,
  • Sysusers,
  • Tareas programadas,
  • Tamaño de tablas,
  • Índices,
  • Consultas de sistema
0% encontró este documento útil (0 votos)
261 vistas32 páginas

Informix 12.10 Sysmaster

El documento es un recopilatorio de consultas SQL para Informix, abarcando versiones 10 a 12, que permite acceder a información interna del motor de base de datos. Incluye secciones sobre el sistema, estadísticas de uso, y detalles sobre sesiones y transacciones, proporcionando ejemplos de consultas para cada tema. Es una guía útil para administradores de bases de datos que buscan optimizar y monitorear el rendimiento del sistema.

Cargado por

carlos.perez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Temas abordados

  • Consultas de estadísticas de l…,
  • Bloqueos,
  • Consultas de DBSpaces,
  • Manejo de errores,
  • Consultas de chunks,
  • Sysusers,
  • Tareas programadas,
  • Tamaño de tablas,
  • Índices,
  • Consultas de sistema

[Título del documento]

[Subtítulo del documento]

Descripción breve

[Dibujar su lector con un resumen de la participación. Normalmente es un breve resumen del


documento. Cuando esté listo para agregar contenido, haga clic aquí y empiece a escribir.]

Víctor Gómez Canela


[Dirección de correo electrónico]
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

CONTENIDO

IFMX:Sysmaster........................................................................................................................................................................... 4
Contenido................................................................................................................................................................................ 4
1 Bases de datos de sistema............................................................................................................................................................. 6
2 QUÉ ES SYSMASTER..........................................................................................................................................................6
2.1 Cuanto tiempo hace que un usuario se ha conectado........................................................................................................6
2.2 Cuanto tiempo está un usuario inactivo..............................................................................................................................7
2.3 Determinar el level isolation de mi sesión..........................................................................................................................7
2.4 Como vincular una sesión a una transacción.......................................................................................................................8
2.5 Cómo encontrar las tablas más activas...............................................................................................................................8
2.6 Cuanto tiempo hace que el motor se está ejecutando........................................................................................................9
2.7 Cómo encontrar la sentencia SQL actual.............................................................................................................................9
2.8 Dónde están los logs........................................................................................................................................................... 9
2.9 Cual es la versión actual del motor.....................................................................................................................................9
2.10 Cómo listar los usuarios..................................................................................................................................................10
2.11 Estadísticas de uso de CPU para cada sesión..................................................................................................................10
2.12 Estadísticas de IO de disco para cada sesión...................................................................................................................10
2.13 Cómo convertir un PID en un ID de sesión......................................................................................................................11
2.14 Cómo encontrar los "sequential scans" de una tabla......................................................................................................11
2.15 Cómo listar el estado de "logging" de una base de datos...............................................................................................11
2.16 Cómo listar los bloqueos.................................................................................................................................................12
2.17 Cómo listar los bloqueos de tipo base de datos..............................................................................................................12
2.18 Cómo mostrar el espacio libre de los logs.......................................................................................................................13
2.19 Cual es el tamaño de página por defecto........................................................................................................................14
2.20 Cuantas filas tiene una tabla...........................................................................................................................................14
2.21 Cómo obtener el nombre de usuario..............................................................................................................................14
2.22 Cómo listar todas las bases de datos...............................................................................................................................15
2.23 What is the database to dbspace mapping.....................................................................................................................15
2.24 Cual es el tamaño de página de un blobspace................................................................................................................15
2.25 En qué dbspaces tiene almacenados datos cada tabla....................................................................................................16
2.26 Cual es el tamaño total de los dbspaces..........................................................................................................................16
2.27 Que sentencias utilizan índices poco balanceados..........................................................................................................16
2.28 Estadísticas de IO de disco por tabla...............................................................................................................................17
2.29 Lista de todas las tablas residentes en dbspaces temporales.........................................................................................17

P á g i n a 1 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2.30 Cual es el tamaño de una tabla.......................................................................................................................................18


2.31 Lista de los extents de una tabla.....................................................................................................................................18
2.32 Configuración actual del motor.......................................................................................................................................19
2.33 onstat -p: Información del "profile" del motor................................................................................................................19
2.35 Cómo resumir las estadísticas de los procesadores virtuales..........................................................................................20
2.36 Cuanto espacio queda libre en los DBSpaces..................................................................................................................20
2.37 Porcentaje de ocupación de los DBSpaces......................................................................................................................20
2.38 Cual es la situación actual de los chunks.........................................................................................................................22
2.39 Cuanto espacio queda libre en un chunk........................................................................................................................22
2.40 Estadísticas de IO de disco por chunk.............................................................................................................................23
2.41 Cual es el porcentaje de IO para los chunks....................................................................................................................23
2.42 En qué dbspace están las tablas......................................................................................................................................24
2.43 Estadisticas de IO por tabla.............................................................................................................................................25
2.44 Espacio ocupado por tabla..............................................................................................................................................25
2.45 Cuales son las tablas más ocupadas................................................................................................................................26
2.46 Tamaño total ocupado por las bases de datos................................................................................................................26
2.47 Cuando se ejecutó el último UPDATE STATISTICS...........................................................................................................26
2.48 Cuando se ejecutó el último onstat -z.............................................................................................................................27
2.49 When was Update Stats last run.....................................................................................................................................27
2.50 Opciones del comando DBINFO......................................................................................................................................27
2.51 Espacio ocupado por el "physical log".............................................................................................................................28
2.52 A qué base de datos está conectada la sesión actual......................................................................................................28
2.53 En qué dbspaces están los índices...................................................................................................................................28
2.54 Qué tablas están en el rootdbs.......................................................................................................................................29
2.55 En qué modo se está ejecutando el motor......................................................................................................................29
2.56 Qué tipo de instancia se está ejecutando........................................................................................................................30
2.57 Qué dbspaces se están utilizando por una base de datos...............................................................................................30
2.58 Cuales son los índices no utilizados.................................................................................................................................31
2.59 Estadísticas utilizadas para la verificación del licenciamiento.........................................................................................31
2.60 Estadísticas de los recursos usados.................................................................................................................................32
3 Qué es sysadmin..........................................................................................................................................................................33
4 Qué es sysusers............................................................................................................................................................................ 33

P á g i n a 2 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

1 BASES DE DATOS DE SISTEMA

P á g i n a 3 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2 QUÉ ES SYSMASTER

Sysmaster es una base de datos del sistema que permite el acceso a la información interna del motor mediante

una interface SQL.

2.1 CUANTO TIEMPO HACE QUE UN USUARIO SE HA CONECTADO

select sid, username,

dbinfo('UTC_TO_DATETIME',connected) conection_time,

current - dbinfo('UTC_TO_DATETIME',connected) connected_since

from syssessions

order by 2,3

2.2 CUANTO TIEMPO ESTÁ UN USUARIO INACTIVO

SELECT [Link], [Link], q.odb_dbname database,

dbinfo('UTC_TO_DATETIME',[Link]) conection_time,

dbinfo('UTC_TO_DATETIME',t.run_time) last_run_time,

current - dbinfo('UTC_TO_DATETIME',t.run_time) idle_time

FROM syssessions s, systcblst t, sysrstcb r, sysopendb q

WHERE [Link] = [Link] AND [Link] = [Link] AND [Link] = q.odb_sessionid

ORDER BY 6 DESC

2.3 DETERMINAR EL LEVEL ISOLATION DE MI SESIÓN

P á g i n a 4 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

SELECT isolevel

FROM sysmaster:sysrstcb R, sysmaster:systxptab T

WHERE [Link] = DBINFO("sessionid")

AND [Link] = [Link];

0 no transactions

1 dirty read (read only)

2 read committed data only

3 cursor record locked

5 repeatable reads

6 dirty read warning

7 dirty read (read only) retain U-locks

8 read committed data only retain U-locks

9 cursor record locked retain U-locks

10 dirty read warning retain U-locks

11 Last committed

2.4 COMO VINCULAR UNA SESIÓN A UNA TRANSACCIÓN

select tx_id

from systrans

where tx_addr = (select us_txp

from sysuserthreads

where us_sid = SESSIONID)

Históricamente, está la tabla systrans no indica si el usuario está realmente en una transacción, por ejemplo

**BEGIN WORK** a no ser que se hayan realizado operaciones dentro de la transacción, ya que los indicadores de

la tabal no cambian cuando la transacción empieza.

P á g i n a 5 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2.5 CÓMO ENCONTRAR LAS TABLAS MÁS ACTIVAS

select [Link],

sysptntab.pf_isread,

sysptntab.pf_iswrite,

sysptntab.pf_isrwrite,

sysptntab.pf_isdelete,

sysptntab.pf_seqscans

from systabnames, sysptntab

where [Link] = [Link]

2.6 CUANTO TIEMPO HACE QUE EL MOTOR SE ESTÁ EJECUTANDO

select dbinfo('UTC_TO_DATETIME', sh_curtime) - dbinfo('UTC_TO_DATETIME', sh_boottime)

from sysshmvals

2.7 CÓMO ENCONTRAR LA SENTENCIA SQL ACTUAL

select sqs_statement

from syssqlstat

where sqs_statement;

select sqx_sessionid,

sqx_conbno,

sqx_sqlstatement

from syssqexplain, sysscblst

where sqx_sessionid = sid

order by 1,2

2.8 DÓNDE ESTÁN LOS LOGS

P á g i n a 6 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

select number, name

from syslogfil, syschunks, sysdbspaces

where [Link] = [Link]

and [Link] = [Link]

2.9 CUAL ES LA VERSIÓN ACTUAL DEL MOTOR

select owner

from sysmaster:systables

where tabid = 99

Esta sentencia funciona bien en versiones antiguas. Sin embargo, en versiones modernas a partir de la 10.00 no

reporta la versión real. Por ejemplo, 11.50.FC6 reporta una versión 9.53C1 y la 11.70.FC5 reporta 9.55.C1, etc. sin

embargo, puede usarse DBINFO para obtener la versión real del motor,

select DBINFO('version','server-type'), DBINFO('version','major'),

DBINFO('version','minor'), DBINFO('version','os'),

DBINFO('version','full')

from sysmaster:systables

where tabid = 99

2.10 CÓMO LISTAR LOS USUARIOS

select unique username

from syssessions

P á g i n a 7 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2.11 ESTADÍSTICAS DE USO DE CPU PARA CADA SESIÓN

select [Link], [Link], [Link], [Link], [Link], [Link],[Link], [Link], [Link],


q.sqs_statement, t.cpu_time

from syssessions s, systcblst t, sysrstcb r, syssqlstat q

where [Link] = [Link] AND [Link] = [Link] AND [Link] = q.sqs_sessionid

order by t.cpu_time desc;

2.12 ESTADÍSTICAS DE IO DE DISCO PARA CADA SESIÓN

select [Link],

isreads,

iswrites,

isrewrites,

isdeletes

from syssesprof, syssessions

where [Link] = [Link]

2.13 CÓMO CONVERTIR UN PID EN UN ID DE SESIÓN

select sid

from syssessions

where pid = 'pid'

2.14 CÓMO ENCONTRAR LOS "SEQUENTIAL SCANS" DE UNA TABLA

select dbsname, tabname, seqscans

from sysptprof

select dbsname, tabname, seqscans

from sysptprof

order by abs(seqscans) desc

P á g i n a 8 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2.15 CÓMO LISTAR EL ESTADO DE "LOGGING" DE UNA BASE DE DATOS

select name,

is_logging,

is_buff_log,

is_ansi,

is_nls

from sysdatabases

Los indicadores son:

0: Not logged

1: Buffered Logging

2: Unbuffered Logging

4: Ansi

8: NLS

2.16 CÓMO LISTAR LOS BLOQUEOS

select dbsname,

tabname,

rowidlk,

keynum,

type

from syslocks,

syssessions

where owner = "sid"

B Byte lock

IS Intent shared lock

P á g i n a 9 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

S Shared lock

XS Repeatable read shared lock

U Update lock

IX Intent exclusive lock

SIX Shared intent exclusive

X Exclusive lock

XR Repeatble read exclusive

2.17 CÓMO LISTAR LOS BLOQUEOS DE TIPO BASE DE DATOS

SELECT "database lock" table_name, [Link] lock_type, [Link] index_num,

HEX([Link]) rowid, [Link] session_id, [Link], [Link], [Link],

q.sqs_statement statement

FROM syslocks l, sysdatabases d, syssessions s, syssqlstat q

WHERE [Link] = ' database_name '

AND [Link] = [Link]

AND [Link] = [Link]

AND dbsname = 'sysmaster'

AND tabname = 'sysdatabases'

AND [Link] = q.sqs_sessionid

UNION ALL

SELECT [Link], [Link], [Link], HEX([Link]), [Link], [Link],

[Link], [Link], q.sqs_statement

FROM syslocks l, syssessions s, syssqlstat q

WHERE [Link] = ' database_name '

AND [Link] = [Link]

AND [Link] = q.sqs_sessionid

AND dbsname = 'sysmaster'

AND tabname = 'sysdatabases'

ORDER BY 5;

P á g i n a 10 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

 Reemplace database_name con el nombre de la base de datos que quiera consultar

 Debe ejecutarse como usuario informix

2.18 CÓMO MOSTRAR EL ESPACIO LIBRE DE LOS LOGS

select number,

uniqid,

size,

used,

(used/size*100)

from syslogs

where uniqid >= (select min(tx_loguniq)

from systrans

where tx_loguniq > 0)

union

select number,

uniqid,

size,

0,

0.00

from syslogs

where uniqid < (select min(tx_loguniq)

from systrans

where tx_loguniq > 0)

2.19 CUAL ES EL TAMAÑO DE PÁGINA POR DEFECTO

select sh_pagesize

from sysshmvals

2.20 CUANTAS FILAS TIENE UNA TABLA

P á g i n a 11 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

La columna nrows de la tabla systables en la propia base de datos solamente se actualiza como resultado de la

ejecución de un "update statistics". Sin embargo, en sysmaster se mantiene de forma actualizada el número de

registros de cada tabla.

select ti_nrows

from systabnames, systabinfo

where [Link] = TABLENAME

and dbsname = DATABASE

and systabinfo.ti_partnum = [Link]

2.21 CÓMO OBTENER EL NOMBRE DE USUARIO

select username, uid

from sysmaster:syssessions

where sid = 'session id'

2.22 CÓMO LISTAR TODAS LAS BASES DE DATOS

select name from sysdatabases

2.23 WHAT IS THE DATABASE TO DBSPACE MAPPING

select name

from sysdbspaces

where dbsnum in (select trunc(partnum / 1048576)

from sysdatabases

where name = "DATABASE")

En las últimas versiones de motor:

select [Link],

P á g i n a 12 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

[Link],

[Link]

from sysdbspaces,sysdatabases

where partdbsnum([Link]) = [Link]

select DBINFO("DBSPACE",partnum) dbspace, name, owner

from sysdatabases

2.24 CUAL ES EL TAMAÑO DE PÁGINA DE UN BLOBSPACE

select prtpage/PAGESIZE

from sysdbstab

where bitval(flags,'0x10') = 1

2.25 EN QUÉ DBSPACES TIENE ALMACENADOS DATOS CADA TABLA

select [Link], tabname,

trunc([Link]/1048576) dbspace, [Link]

from systabnames, sysdbspaces

where [Link] = trunc([Link]/1048576)

2.26 CUAL ES EL TAMAÑO TOTAL DE LOS DBSPACES

select name, count(*) chunks, sum(chksize), sum(nfree)

from syschunks, sysdbspaces

where [Link] = [Link]

group by 1

2.27 QUE SENTENCIAS UTILIZAN ÍNDICES POCO BALANCEADOS

P á g i n a 13 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

La siguiente sentencia SQL identifica SQLs utilizando índices poco balanceados

select sqx_sessionid,

sqx_executions,

round(sqx_bufreads/sqx_executions),

round(sqx_pagereads/sqx_executions),

sqx_estcost,

sqx_estrows,

sqx_index,

sqx_sqlstatement

from syssqexplain

where sqx_executions > 3000

and (sqx_bufreads / sqx_executions > 50

or sqx_executions > 100)

and (sqx_bufreads / sqx_executions > 1000

or sqx_executions > 1)

and sqx_bufreads / sqx_executions > 50000

La siguiente sentencia SQL identifica los índices no utilizados

SELECT [Link],

[Link],

[Link] AS idxname,

([Link] * [Link] / 1024) :: INT AS size_kb

FROM systabnames AS x1, sysptntab AS x2,

systabnames AS x3, sysptnhdr AS x4

WHERE [Link] = [Link]

AND [Link] != [Link]

AND [Link] = [Link]

AND [Link] = [Link]

AND [Link] MATCHES '[a-z]*'

AND [Link] MATCHES '[a-z]*'

AND x2.pf_isread = 0

AND x2.pf_iswrite > 0

ORDER BY 4 DESC

P á g i n a 14 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

A partir de 11.50, o en bases de datos con índices desacoplados de las tablas, esta información también está

disponible a través de las estadísticas de IO de tablas, pero usando el nombre del índice como filtro de nombre de

tabla.

2.28 ESTADÍSTICAS DE IO DE DISCO POR TABLA

select dbname,

tabname,

sum(pagreads),

sum(pagwrites)

from sysptprof

group by dbsname, tabname

2.29 LISTA DE TODAS LAS TABLAS RESIDENTES EN DBSPACES TEMPORALES

select dbsname,tabname

from sysptprof, sysdbspaces

where dbsnum = trunc(partnum/1048576)

and name = TEMPDBS

order by 1

2.30 CUAL ES EL TAMAÑO DE UNA TABLA

A diferencia de oncheck, la ejecución de esta sentencia no necesita ningún bloqueo, por lo tanto los resultados

pueden no ser exactos en un sistema vivo.

select dbsname,

tabname,

ti_nextns,

ti_nptotal,

ti_npused,

ti_npdata,

P á g i n a 15 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

ti_nrows,

ti_rowsize

from systabnames, systabinfo

where partnum = ti_partnum

2.31 LISTA DE LOS EXTENTS DE UNA TABLA

select tabname, count(*)

from sysextents

where dbsname = 'DATABASE'

group by 1

O agrupado por dbspaces

select substr(DBINFO("DBSPACE",partnum),1,10) DBSpace,

dbsname[1,10] Database,

tabname[1,15] Table,

sum(pe_size) tot_space,

count(*) no_of_exts

from sysptnext, systabnames

where pe_partnum = partnum

and tabname != "TBLSpace"

group by 1,2,3

order by 1,4 desc

2.32 CONFIGURACIÓN ACTUAL DEL MOTOR

select * from sysconfig

Por ejemplo, para obtener el nombre del servidor:

select *

from sysconfig

P á g i n a 16 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

where cf_name = "DBSERVERNAME"

2.33 ONSTAT -P: INFORMACIÓN DEL "PROFILE" DEL MOTOR

select * from sysprofile

2.34 INFORMACIÓN ACERCA DE LOS LOGS

select * from syslogs

Esto es simplemente una vista de syslogfil, pero con el campo de indicadores interpretado. La misma información

puede obtenerse consultando la tabla syslogfil, interpretando los indicadores:

select number ,uniqid ,size ,used ,

bitval([Link] ,'0x1' ) is_used,

bitval([Link] ,'0x2' ) is_current,

bitval([Link] ,'0x4' ) is_backed_up,

bitval([Link] ,'0x8' ) is_new,

bitval([Link] ,'0x10' ) is_archived,

bitval([Link] ,'0x20' ) is_temp,

[Link],name

from syslogfil, syschunks, sysdbstab

where ([Link] > 0)

and trunc((hex(physloc)/1048576))=chknum

and [Link] = [Link]

2.35 CÓMO RESUMIR LAS ESTADÍSTICAS DE LOS PROCESADORES VIRTUALES

select vpid,

txt,

usecs_user,

usecs_sys,

P á g i n a 17 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

num_ready

from sysvplst, flags_text

where [Link] != 6

and [Link] = flags_text.flags

and flags_text.tabname = "sysvplst"

2.36 CUANTO ESPACIO QUEDA LIBRE EN LOS DBSPACES

select name, sum(chksize) pages, sum(nfree) free

from sysdbspaces, syschunks

where [Link] = [Link]

group by 1

2.37 PORCENTAJE DE OCUPACIÓN DE LOS DBSPACES

SELECT

[Link],

nchunks,

format_units(sum([Link]*[Link])) total,

format_units(sum([Link]*[Link]) -
sum([Link]*[Link])) used,

round (100 - ((sum([Link])) / (sum([Link])) * 100), 2) percent_used

FROM sysdbspaces

,syschunks

WHERE

[Link] = [Link]

AND

sysdbspaces.is_sbspace = 0

GROUP BY 1,2

P á g i n a 18 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

UNION

SELECT

[Link],

nchunks,

format_units(sum([Link]*[Link])) total,

format_units(sum([Link]*[Link]) -
sum([Link]*[Link])) used,

round (100 - ((sum([Link])) / (sum([Link])) * 100), 2) percent_used

FROM sysdbspaces

,syschunks

WHERE

[Link] = [Link]

AND

sysdbspaces.is_sbspace = 1

GROUP BY 1,2

ORDER BY percent_used desc

2.38 CUAL ES LA SITUACIÓN ACTUAL DE LOS CHUNKS

select name,

is_mirrored,

is_blobspace,

is_temp,

chknum,

fname,

offset,

is_offline,

is_recovering,

is_blobchunk,

is_inconsistent,

chksize,

nfree,

mfname,

P á g i n a 19 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

moffset,

mis_offline,

mis_recovering

from sysdbspaces, syschunks

where [Link] = [Link]

order by 1, 5

2.39 CUANTO ESPACIO QUEDA LIBRE EN UN CHUNK

select name,

[Link],

[Link],

[Link],

[Link]

from sysdbspaces, syschunks, syschfree

where [Link] = [Link]

and [Link] = [Link]

order by 1,2

2.40 ESTADÍSTICAS DE IO DE DISCO POR CHUNK

select name,

chknum,

"Primary",

reads,

writes,

pagesread,

pageswritten

from syschktab, sysdbstab

where [Link] = [Link]

union all

select name,

chknum,

P á g i n a 20 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

"Mirror",

reads,

writes,

pagesread,

pageswritten

from sysmchktab, sysdbstab

where [Link] = [Link]

order by 1,2

2.41 CUAL ES EL PORCENTAJE DE IO PARA LOS CHUNKS

select name,

chktype,

"Primary" chktype,

reads,

writes,

pagesread,

pageswritten

from syschktab, sysdbstab

where [Link] = [Link]

union all

select name,

chktype,

"Mirror" chktype,

reads,

writes,

pagesread,

pageswritten

from sysmchktab, sysdbstab

where [Link] = [Link]

into temp t_io with no log;

select sum(reads) t_reads,

sum(writes) t_writes,

sum(pagesread) t_pagesread,

P á g i n a 21 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

sum(pageswritten) t_pageswritten

from t_io

into temp t_sum with no log;

select name,

chknum,

chktype,

reads,

writes,

pagesread,

pageswritten,

round((reads/t_reads)*100,2) p_reads,

round((writes/t_writes)*100,2) p_writes,

round((pagesread/t_pagesread)*100,2) p_pagesread,

round((pageswritten/t_pageswritten)*100,2) p_pageswritten

from t_io, t_sum

2.42 EN QUÉ DBSPACE ESTÁN LAS TABLAS

select DBINFO("DBSPACE",partnum),

dbsname,

tabname,

pe_phys,

pe_size

from sysptnext, systabnames

where pe_partnum = partnum

order by 1

2.43 ESTADISTICAS DE IO POR TABLA

select dbsname,

tabname,

isreads,

P á g i n a 22 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

bufreads,

pagreads,

iswrites,

bufwrites,

pagwrites,

lockreqs,

lockwts,

deadlks

from sysptprof

order by 3

Si las columnas muestran valores 0, deberá activar el parámetro TBLSPACE_STATS en el fichero **ONCONFIG**

2.44 ESPACIO OCUPADO POR TABLA

select dbsname,

tabname,

count(*) num_of_extents,

sum( pe_size ) total_size

from systabnames, sysptnext

where partnum = pe_partnum

and tabname not matches "sys*"

group by 1, 2

order by 3 desc, 4 desc;

2.45 CUALES SON LAS TABLAS MÁS OCUPADAS

La siguiente sentencia SQL identificará las tablas más utilizadas

select fname, name, dbsname, tabname,

pagreads+pagwrites pagtots

from sysptprof, syschunks, sysdbspaces, sysptnhdr

where trunc(hex([Link])/1048576) = chknum

P á g i n a 23 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

and [Link] = [Link]

and [Link] = [Link]

and (pagreads+pagwrites) != 0

order by 5 desc

2.46 TAMAÑO TOTAL OCUPADO POR LAS BASES DE DATOS

select sum(ti_nptotal), sum(ti_npused)

from systabnames, systabinfo

where partnum = ti_partnum

order by 1

2.47 CUANDO SE EJECUTÓ EL ÚLTIMO UPDATE STATISTICS

select [Link], [Link], [Link],mode

from sysdistrib, systables, syscolumns

where [Link] > 99

and [Link] = [Link]

and [Link] = [Link]

and [Link] = [Link]

group by 1,2,3,4

order by tabname,colname;

2.48 CUANDO SE EJECUTÓ EL ÚLTIMO ONSTAT -Z

Está sentencia devuelve la fecha en que se ejecutó por última vez la reinicialización de las estadísticas mediante

onstat -z:

SELECT dbinfo('UTC_TO_DATETIME',sh_pfclrtime) FROM sysshmvals;

P á g i n a 24 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2.49 WHEN WAS UPDATE STATS LAST RUN

select distinct tabname, [Link], [Link]

from systables a, sysdistrib b

where [Link] = [Link]

order by 1

2.50 OPCIONES DEL COMANDO DBINFO

DBINFO('dbspace', partn)

DBINFO('sqlca.sqlerrd1')

DBINFO('sqlca.sqlerrd2')

DBINFO('utc_to_datetime', <column>)

DBINFO('utc_current')

DBINFO('get_tz')

DBINFO('serial8')

DBINFO('sessionid')

DBINFO('dbhostname')

DBINFO('version','server-type')

DBINFO('version','major')

DBINFO('version','minor')

DBINFO('version','os')

DBINFO('version','full')

Dependiendo de la versión de IDS algunos de estos comandos pueden no estar disponibles

2.51 ESPACIO OCUPADO POR EL "PHYSICAL LOG"

select pl_physize, pl_phyused, round ((pl_phyused * 100.0)/pl_physize,2)

from sysplog

2.52 A QUÉ BASE DE DATOS ESTÁ CONECTADA LA SESIÓN ACTUAL

P á g i n a 25 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

select sqc_currdb

from syssqlcurall

where sqc_sessionid = dbinfo('sessionid');

2.53 EN QUÉ DBSPACES ESTÁN LOS ÍNDICES

-- Find detached indexes

select sysmaster:[Link] dbs_name,

sysmaster:[Link],

app_db:[Link]

from sysmaster:systabnames, sysmaster:sysdbspaces, app_db:sysindexes

where sysmaster:[Link] = trunc(sysmaster:[Link]/1048576)

and sysmaster:[Link] != "rootdbs"

and sysmaster:[Link] != "database_dbs"

and app_db:[Link] = sysmaster:[Link]

union

-- Find other indexes

select sysmaster:[Link] dbs_name,

sysmaster:[Link],

app_db:[Link]

from sysmaster:systabnames, sysmaster:sysdbspaces, app_db:systables, app_db:sysindexes

where sysmaster:[Link] = trunc(sysmaster:[Link]/1048576)

and sysmaster:[Link] != "rootdbs"

and sysmaster:[Link] != "database_dbs"

and app_db:[Link] = sysmaster:[Link]

and app_db:[Link] = app_db:[Link]

-- Exclude detached indexes

and app_db:[Link] not in (select tabname from sysmaster:systabnames )

order by 1, 2, 3

P á g i n a 26 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

2.54 QUÉ TABLAS ESTÁN EN EL ROOTDBS

SELECT UNIQUE [Link], [Link]

FROM sysdbspaces d, syschunks c, sysextents e

WHERE [Link] = 'rootdbs'

AND [Link] = [Link]

AND [Link] = [Link]

AND [Link] NOT IN ('rootdbs', 'sysmaster', 'sysadmin', 'sysuser', 'sysutils')

ORDER BY 1, 2

2.55 EN QUÉ MODO SE ESTÁ EJECUTANDO EL MOTOR

select sh_mode

from sysmaster:sysshmvals;

IDS 7,9,10,11

-1 Offline (-1 = 255)

0 Initialisation

1 Quiescent

2 Recovery

3 Backup

4 Shutdown

5 Online

6 Abort

2.56 QUÉ TIPO DE INSTANCIA SE ESTÁ EJECUTANDO

select ha_type from sysmaster:sysha_type

0 Not part of a high-availability environment

1 Primary server

2 HDR secondary server

P á g i n a 27 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

3 SD secondary server

4 RS secondary server

2.57 QUÉ DBSPACES SE ESTÁN UTILIZANDO POR UNA BASE DE DATOS

select distinct dbinfo("dbspace",[Link])

from <database>:sysfragments a, sysmaster:systabnames b

where [Link] = [Link]

and tabid > 99

union

select distinct dbinfo("dbspace",[Link])

from <database>:systables a, sysmaster:systabnames b

where [Link] = [Link]

and [Link] != 0

and tabid > 99

union

select [Link] dbs_name

from sysmaster:systabnames a, sysmaster:sysdbspaces b, <database>:sysindexes c

where [Link] = trunc([Link]/1048576)

and [Link] = [Link]

and [Link] = '<database>'

and tabid > 99

order by 1

2.58 CUALES SON LOS ÍNDICES NO UTILIZADOS

select [Link] index, [Link] as type, [Link] reads

from sysindexes, sysmaster:sysptprof sysptprof

where [Link] = [Link]

and [Link] = 0

order by reads desc, idxname ;

2.59 ESTADÍSTICAS UTILIZADAS PARA LA VERIFICACIÓN DEL LICENCIAMIENTO

P á g i n a 28 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

select count(*) concurrentsessions

from sysmaster:sysrstcb

where sysmaster:bitval(flags,1)>0 { only count busy threads }

and sysmaster:bitval(flags,'0x80000')!=0 { only count primary threads }

and sysmaster:bitval(flags,'0x200')==0 { remove daemon threads}

and sysmaster:bitval(flags,'0x40')==0 { remove log backup users }

and sysmaster:bitval(flags,'0x80')==0 { remove onmonitor users }

and sysmaster:bitval(flags,'0x2000')==0 { remove page cleaners}

and sysmaster:bitval(flags,'0x00000400')==0 { remove archive threads}

and sysmaster:bitval(flags,'0x00004000')==0 { remove recovery threads}

and sysmaster:bitval(flags,'0x00100000')==0 { remove idx blder }

and sysmaster:bitval(flags,'0x00200000')==0 { remove btree scanner }

and sysmaster:bitval(flags,'0x04000000')==0 { remove main loop}

and flags < '0x20000000';

La tabla sysfeatures contiene estadísticas por semanas de la versión de IDS instalada, la memoria y procesadores

virtuales asignados y las conexiones activas. Esta tabla es de solo lectura, y la única forma de inicializarla es

mediante la inicialización del motor.

SELECT * FROM sysmaster:sysfeatures;

La vista syslicenseinfo, es una vista que obtiene la mayoria de datos de la tabla sysfeatures

SELECT * FROM sysmaster:syslicenseinfo;

El siguiente SELECT devuelve el número máximo de sesiones concurrentes por semana del año.

select week, year, max_conns from syslicenseinfo

week year max_conns

47 2015 192

46 2015 276

45 2015 294

44 2015 266

43 2015 242

42 2015 252

P á g i n a 29 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

41 2015 223

40 2015 223

...

2.60 ESTADÍSTICAS DE LOS RECURSOS USADOS

Máximo, minino y la media de los recursos usados:

SELECT

'Maximum' as max_min_avg, MAX(max_conns) as max_conns, MAX(max_cpu_vps) as max_cpu_vps,


MAX(max_vps)as max_vps,

format_units(MAX(total_size),'M') as total_size, format_units(MAX(total_size_used),'M')


as total_size_used,

format_units(MAX(max_memory),'M') as max_memory, format_units(MAX(max_memory_used),'M')


as max_memory_used

FROM syslicenseinfo

UNION ALL

SELECT

'Minimum' as max_min_avg, MIN(max_conns) as max_conns,MIN(max_cpu_vps) as


max_cpu_vps,MIN(max_vps)as max_vps,

format_units(MIN(total_size),'M') as total_size, format_units(MIN(total_size_used),'M')


as total_size_used,

format_units(MIN(max_memory),'M') as max_memory, format_units(MIN(max_memory_used),'M')


as max_memory_used

FROM syslicenseinfo

UNION ALL

SELECT

'Average' as max_min_avg, ROUND(AVG(max_conns),0) as max_conns,ROUND(AVG(max_cpu_vps),0)


as max_cpu_vps,ROUND(AVG(max_vps),0)as max_vps,

format_units(TRUNC( AVG(total_size),4),'M') as total_size, format_units(TRUNC


(AVG(total_size_used),4),'M') as total_size_used,

format_units(TRUNC (AVG(max_memory),4),'M') as max_memory, format_units(TRUNC


(AVG(max_memory_used),4),'M') as max_memory_used

P á g i n a 30 | 32
Revisión
Recopilatorio de querys de Informix y útiles versiones 10 a 12
2019

FROM syslicenseinfo

ORDER BY 1

Los recursos usados las tres ultimas semanas:

SELECT FIRST 3

(MDY(1,1,year) + (week*7) UNITS DAY)::DATE as edate,

max_conns,max_cpu_vps,max_vps,

format_units(total_size,'M') as total_size, format_units(total_size_used,'M') as


total_size_used,

format_units(max_memory,'M') as max_memory, format_units(max_memory_used,'M') as


max_memory_used

FROM syslicenseinfo

ORDER BY 1 DESC

3 QUÉ ES SYSADMIN

Sysadmin es una base de datos generada por el propio motor Informix, para gestionar la herramienta de

programación de tareas que permite ejecutar a la base de datos funciones y procedimientos a horas predefinidas o

según determine el propio servidor. El programador permite definir y ejecutar tareas, y la base de datos sysadmin

contiene las seis tablas que almacenan la información necesaria para que funcione.

Debido a que algunos componentes muy importantes de la base de datos utilizan el programador de tareas para

ejecutar operaciones administrativas, nunca debe borrar o alterar esta base de datos.

4 QUÉ ES SYSUSERS

P á g i n a 31 | 32

También podría gustarte