Tips Básicos Sybase

Hola compañeros de la shell,

En esta entrada trataremos de recopilar un compendio de queries útiles para gestores Sybase que puedan servirnos independientemente del modelo de datos de la aplicación que utilice el gestor.

-- Backup total o parcial de tabla
SELECT *
INTO TABLA_DESTINO_BCK
FROM TABLA_ORIGEN

-- BCP (Ejemplos de bulk copy out e in para trasladar tablas entre gestores distintos)
bcp TABLA_ORIGEN OUT Fichero_Destino - c - t ";" - b 1000 - UUSUARIO_BBDD - PPASSWORD_BBDD bcp TABLA_DESTINO IN Fichero_Fuente - c - t ";" - b 1000 - UUSUARIO_BBDD - PPASSWORD_BBDD

-- Buscar nombre de campo en todas las tablas del modelo de datos
SELECT so.name
  ,sc.name
FROM sysobjects so
  ,syscolumns sc
WHERE sc.name LIKE '%TASK%'
  AND so.id = sc.id
  AND so.type = 'U'
ORDER BY so.name

-- Listado ordenado de índices de una bbdd
SELECT name
FROM sysindexes
WHERE indid <> 0
ORDER BY name

-- Ver caracteristicas de un indice.
sp_help nombre_de_la_tabla_que_tiene_el_indice sp_helpindex nombre_de_la_tabla_que_tiene_el_indice

-- Ver sobre que tabla se ha creado un indice
SELECT name
FROM sysobjects
WHERE id = (
    SELECT id
    FROM sysindexes
    WHERE name = 'NOMBRE_INDICE'
    )
  -- Ver las conexiones sobre una base de datos
  sp_who
  -- Muestra SPID (pid en la maquina sybase) asi como hostname e IP
  sp_client_addr
  -- Muestra el nombre de la clase asociada a un SPID (ej. RazorSQL si conectas al gestor con este cliente)
  sp_showpsexe

-- Tabla status de procesos de gestor Sybase
-- hostprocess -> PID en la máquina origen; SPID -> PID en la máquina del gestor de bbdd
SELECT *
FROM master..sysprocesses

-- Información sobre bloqueos en bbdd (spid proceso bloqueado; blocked proceso bloqueante (devuelve el SPID, despues hay que obtener el hostprocess (PID del proceso en la máquina origen)):
SELECT spid
  ,blocked
FROM sysprocesses
WHERE blocked > 0

-- Info sobre el proceso bloqueante: 
SELECT spid
  ,cmd
  ,physical_io
  ,db_name(dbid) db_name
FROM sysprocesses
WHERE spid = PROCESO_BLOQUEANTE_SPID

-- Información sobre engines de un gestor (1 engine = 1 proceso servidor en la máquina de bbdd):
SELECT *
FROM master..sysengines

-- Logins contra el gestor
SELECT suid
  ,fullname
  ,STATUS
FROM master..syslogins

-- Obtener datos del servidor:

SELECT @@version
GO

sp_cacheconfig
GO

sp_configure "stack size"
GO

sp_configure "max memory"
GO

sp_configure "max online engines"
GO

-- Muestra el número máximo de locks configurados en un gestor (campo Config Value del resultado):
sp_configure "number of locks"
GO

sp_configure "max network packet size"
GO

sp_configure "number of user connections"
GO

-- Servername de un gestor Sybase (el identificador que aparece en $SYBASE/interfaces):
SELECT @@servername
GO

-- Dependencias de un objeto: En caso de tabla, muestra índices, triggers etc. relacionados con la misma.
sp_depends TABLE_NAME

-- Dependencias de un objeto: En caso de trigger, muestra todas las tablas relacionadas con el mismo.
sp_depends TRIGGER_NAME

-- Muestra información sobre el trigger
sp_help TRIGGER_NAME

-- Muestra el código del trigger/procedimiento almacenado
sp_helptext TRIGGER_NAME | STORED_PROCEDURE

-- Procedimientos almacenados:
-- Ver procedimientos almacenados de una bbdd (la tabla sysobjects en la bbdd master devuelve tablas y procedimientos almacenados del systema)
USE target_ddbb

SELECT name
FROM sysobjects
WHERE type = 'P'

-- Ver tablas cacheadas en el gestor:
sp_helpcache

-- Funcion para restar fechas (ejemplo, resultado de la resta en dias dd):
datediff(dd, M_SYS_DATE, getdate()) < 1

-- Ver sobre que tabla se ha creado un indice
-- Mostrar plan de ejecución y tiempos de estadísticas para revisar problemas de performance:
SET STATISTICS TIME
  ,IO ON
GO

SET showplan ON
GO

-- Para saber el siguiente M_IDENTITY que tomaría una tabla:
SELECT next_identity(#TABLA#)

-- Obtener la fecha del sistema del gestor de bbdd
DECLARE @a DATE

SELECT @a = getdate()

SELECT @a
GO

 

Espero que os sirva.

Un saludo desde el otro lado de la pantalla negra.

Esta entrada fue publicada en Bases de datos. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *