SelectEtoile : Base de connaissance SGBD

Posts Tagged 'sybase ase'

sp_syntax et la base sybsyntax sous SYBASE ASE

Sybase : sp_syntax et la base sybsyntax
=======================================

Combien de fois avez-vous pesté devant les commandes Sybase et le flou artistique qui entoure leur syntaxe ? Faut-il mettre un "underscore" ou non ? Un espace ? Et pourquoi tant de paramètres ? Dans quel ordre les mettre ?

Pfiou... Que de questions. Calmez-vous donc un peu et écoutez-moi attentivement :

Comme souvent (pour ne pas dire toujours), la solution existe mais soit l'éditeur ne fait aucun effort pour l'intégrer, soit tout le monde s'en fiche. Et pourtant, il existe bien un moyen d'avoir une aide en ligne une fois connecté au dataserver. je viens de trouver ça. J'en suis tout chose.

Bon, voyons voir comment ça marche...

Le script est dans $SYBASE/$SYBASE_ASE/scripts/ins_syn_sql

Par défaut, il crée la base sur le device "master". Selon la taille de page, elle peut faire 3 ou 5 Mo.

Je préfère créer un device exprès :
disk init name = 'sybsyntax_01',physname = '/chemin/vers/sybsyntax_01.dat',size = '6M'
go

... et modifier le script. Ça prend deux minutes et c'est étrangement gratifiant.

2) En fait, j'ai mis un "2" mais ce n'est pas la peine, c'est fait.
Maintenant, pour avoir des informations sur une commande :
sp_syntax 'la commande"

Les guillemets sont obligatoires.

Par exemple :
1> sp_syntax 'sp_monitor'
2> go
 Syntax Help
                                                                             
 ------------------------------------------------------------------------------
 System Procedure                                                              
 sp_monitor - Displays statistics about Adaptive Server.                        
   sp_monitor                                                                  
                                                                               
 sp_monitorconfig - Displays cache usage statistics regarding metadata          
         descriptors for indexes, objects, and databases.                      
         sp_monitorconfig also reports statistics on                            
         auxiliary scan descriptors used for                                    
         referential integrity queries, and                                    
         usage statistics for transaction descriptors and DTX participants.    
   sp_monitorconfig "configname"                                                
                                                                               
(return status = 0)


C'est cool, non ?

Je réponds au passage à ma propre question : à mon avis, Sybase n'intègre pas d'emblé ce genre de fonctionnalité pour la même raison que les adminstrateurs système n'installent pas toujours les "man" : si vous avez besoin de documentation dans un environnement de production c'est que vous n'avez rien à y faire, et si vous ne savez pas l'installer en dehors, c'est que vous devriez changer de métier.

C'est déplaisant à entendre mais admettez que c'est vraisemblable !

 

 

Petit guide des commandes SYBASE ASE

Un petit guide des différentes commandes pour SYBASE ASE


Les commandes système 'dbcc' :

 

dbcc traceon(3604) : affiche à l’écran

dbcc traceon(3605) : redirige dans la log

dbcc traceon(11209) : updatestat renvoie le row count

dbcc traceon(328) : disable the reformatting

dbcc sqltext(spid) : affiche la requete d’une session

dbcc pss(0,spid,0) :

dbcc page(dbname,page_id) : description d’une page problematique, acces a une page et a son contenu

dbcc checkdb(db_name) : contrôle le chaînage des pages, vérifie la cohérence des tables

dbcc checkcatalog : vérifie les références des tables systèmes

dbcc checkalloc(db_name) : identification des erreurs, vérifie l’allocation des pages dans toute la base de données (traitement long)

dbcc checktable(table_name) : decrit les lien entre chaque page d’un table, indique le nombre moyen de ligne par page (used_pgs nombre de page utilisé par une table, et rowent, nombre de ligne d’une table)

dbcc indexalloc(table_name,indid,full) : vérifie l’allocation des pages pour l’index spécifié

dbcc tablealloc(table_name,full,fix) : vérifie/corrige la bonne/mauvaise allocation des pages d’une table avec l’option (fix ou nofix)

dbcc listoam ou dbcc tablealloc (attention verrou): permet d’examiner des extents et des pages d’allocations

dbcc pglinkage : permet de suivre les chaînes de pages.

dbcc prtipage : permet d’afficher une page d’index.

dbcc gettrunc : liste les points de troncature

dbcc settrunc(ltm,’ignore’) : supprime le point de troncature

Dbcc engine (net, show moteur) affiche les tâches liées au moteur

Dbcc engine (net, showall moteur) affiche toutes les tâches

Dbcc engine (net, netengine moteur) affiche les moteurs auquel sont liées les tâches en cours

dbcc dbrepair(database_name,dropdb) : permet de dropper une base quand elle dans un état 'suspect'. Commande non supportée

 

dbcc dbreboot :

dbcc help(dbreboot)

dbreboot (report | reboot | reboot_norecovery | shutdown | shutdown_load | restart | restart_norecovery, <dbname1> [, <dbname2> ...])

Reboot the specified databases.Options

report – Shows a report on the specified database(s).

reboot – Database is shutdown and restarted with recovery.

reboot_norecovery – Database is shutdown and restarted and left in a “not recovered” state. Can be used to add more space.

shutdown – Database is shutdown and left in an unusable state.

shutdown_load – Database is shutdown and left in a state that allows LOAD DATABASE to be done.

restart – Restart and recover a database that has been shutdown.

restart_norecovery – Restart database and left in a “not recovered” state. Good when there are problems with recovery.

DBCC MARKPROCS(DBName) : commande suite à un rechargement d'un dump d'un autre environnement. Il s'agit en fait d'un bug se traduisant par une erreur lors de l'exécution de curseurs (Ex : Table TableName not found !!!)

 

Les commandes systèmes utiles :

 

select lct_admin(« abort »,0,2) ---- 2 pour tempdb, 0 pour tous les process

select (sysstat2 & 57344) from sysobjects where name=’table_name’ :

donne le type de locking :

0 ou 8192 allpages

16384 datapages

32768 datarows

select inttohex() et/ou biginttohex().

select pssinfo(spid, « tempdb_pages ») : donne les pages créées dans tempdb pour un spid

syslogshold : liste des process en tache de fond

 

 

 

 

Les commandes 'set' :

 

set showplan on : decrit le l’arbre d’instruction

set statistics io on : decrit les io memoire et disque

set statistics time on : decrit le temps de reponse (Parse et Execute time : query plan, Execute time : execute query plan)

set noexec on : n’execute pas la requete mais montre le plan avec showplan

set fmtonly :

set rowcount :

set statistics subquerycache on : affiche les acces ios physique et memoire

SET BACKGROUND ON : redirige l'output dans l'error log du data server

set proc_return_status off : supprime le return status

set plan optgoal allrows_oltp (SYBASE ASE 15)

set plan opttimeoutlimit 3

set statistics plancost on

set compatibility_mode on : activation du compatibility mode. C'est à dire activer l'optimiseur 12.5 sur une version 15

set statement_cache off : désactivation du statement cache

set opportunistic_distinct_view off : mis en place lors de la détection d'un bug SYBASE 15 sur la gestion d'un 'select into' vers une table temporaire #

set option show_missing_stats on : affiche les colonnes de la requete qui n'ont pas de statistiques (option de la 15)

set switch on PRINT_OUTPUT_TO_CLIENT (ASE 12.5.4) : permet de rediriger la sortie à l'écran

set switch on print_plan_index_selection (ASE 12.5.4) : équivalent au 302 (dbcc traceon(302), set switch on 302)

 

 

 

Les Procédures Stockées système :

 

sp_helpsort : configuration server (LANG)

sp_deviceattr : modifie l’option dsync

sp_dbcc_faultreport : liste des erreurs par table

sp_dbcc_faultreport(« long »,db_name,table_name) : specifie les erreurs détaillées sur une seule table

sp_showplan spid,null,null,null : montre le plan

sp_countmetadata ‘open objects’ ou ‘open indexes’ : compte les objets et la place memoire necessaire

sp_reportstats : permet d’obtenir les consommations CPU en fonction des logins

sp_clearstats : pour mettre à zéro les stats

sp_etspace : estime l’espace pris par une table

sp_helpsegment, sp_spaceused : donne l’espace d’une table

sp_object_stats "00:01:00", 5, faodb_agence : visualise les 5 tables les plus consommatrices en locks

sp_cachestrategy nom_base,nom_table,nom_index 

sp_cursorinfo :

sp_options 'show' : affiche les options de la session courante

sp_options 'show',null,null,4590 : affiche les options du spid 4590

 

 

Les variables globales :

@@timeticks (durée d’une impulsion en ms)

@@cpu_busy (nombre total d’impulsion CPU)

@@io_busy (impulsion consommées dans les E/S)

@@total_read (nombre total de lecture disque)

@@ total_write (nombre total d’écriture disque)

 

@@nestlevel compte le nombre d'imbrication.

@@identity