IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[MSSQL2K] methode pour reprendre une BDD incomprehensible


Sujet :

MS SQL Server

  1. #1
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut [MSSQL2K] methode pour reprendre une BDD incomprehensible
    bonjour a touszétout,

    1- j'ai a recuperer une BDD assez compliquée.
    2- seul 5% de la base est reellement utilisée.
    3- je ne sait pas quelle sont les tables utilisée mais je doit recuperer les infos et les reinjecter dans un autre soft de ma mouture.
    4- Je serais preneur d'un autre browser qui par exemple afficherais d'un coup le nombre de ligne des tables et eventuellement les liens entre elle de maniere graphique.

    Bon voila ca peut faire beaucoup d'un coup, ou une reponse: WOLF le-soft-qui-resoud-les-problemes

    merci boc d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Voici un script te donnant le nombre de lignes de chaque table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    /*
    SQL 2000
    Récupère pour chaque table utilisateur le nombre
    d'enregistrements et la taille des données et index en Ko
    */
    declare @id	int			
    declare @type	character(2) 		
    declare	@pages	int			
    declare @dbname sysname
    declare @dbsize dec(15,0)
    declare @bytesperpage	dec(15,0)
    declare @pagesperMB		dec(15,0)
     
    create table #spt_space
    (
    	objid		int null,
    	rows		int null,
    	reserved	dec(15) null,
    	data		dec(15) null,
    	indexp		dec(15) null,
    	unused		dec(15) null
    )
     
    set nocount on
     
    -- Create a cursor to loop through the user tables
    declare c_tables cursor for
    select	id
    from	sysobjects
    where	xtype = 'U'
     
    open c_tables
     
    fetch next from c_tables
    into @id
     
    while @@fetch_status = 0
    begin
     
    	/* Code from sp_spaceused */
    	insert into #spt_space (objid, reserved)
    		select objid = @id, sum(reserved)
    			from sysindexes
    				where indid in (0, 1, 255)
    					and id = @id
     
    	select @pages = sum(dpages)
    			from sysindexes
    				where indid < 2
    					and id = @id
    	select @pages = @pages + isnull(sum(used), 0)
    		from sysindexes
    			where indid = 255
    				and id = @id
    	update #spt_space
    		set data = @pages
    	where objid = @id
     
     
    	/* index: sum(used) where indid in (0, 1, 255) - data */
    	update #spt_space
    		set indexp = (select sum(used)
    				from sysindexes
    				where indid in (0, 1, 255)
    				and id = @id)
    			    - data
    		where objid = @id
     
    	/* unused: sum(reserved) - sum(used) where indid in (0, 1, 255) */
    	update #spt_space
    		set unused = reserved
    				- (select sum(used)
    					from sysindexes
    						where indid in (0, 1, 255)
    						and id = @id)
    		where objid = @id
     
    	update #spt_space
    		set rows = i.rows
    			from sysindexes i
    				where i.indid < 2
    				and i.id = @id
    				and objid = @id
     
    	fetch next from c_tables
    	into @id
    end
     
    select 	TableName = (select left(name,60) from sysobjects where id = objid),
    	Rows = convert(char(11), rows),
    	ReservedKB = ltrim(str(reserved * d.low / 1024.,15,0) + ' ' + 'KB'),
    	DataKB = ltrim(str(data * d.low / 1024.,15,0) + ' ' + 'KB'),
    	IndexSizeKB = ltrim(str(indexp * d.low / 1024.,15,0) + ' ' + 'KB'),
    	UnusedKB = ltrim(str(unused * d.low / 1024.,15,0) + ' ' + 'KB')
     
    from 	#spt_space, master.dbo.spt_values d
    where 	d.number = 1
    and 	d.type = 'E'
    order by reserved desc 
    drop table #spt_space
    close c_tables
    deallocate c_tables
    Sinon, tu peux générer un diagramme des tables via Enterprise Manager. Ou encore utiliser des outils tiers comme CaseStudio de CharonWare

  3. #3
    Membre régulier Avatar de igorzup
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    307
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 307
    Points : 107
    Points
    107
    Par défaut
    exelent!!!!!!!

    un coup de reverse engenering et hop....
    2000 merci c'est trop peu mais ce s'ra tout pour l'instant.
    a charge de revanche...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Content que tu sois content...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-E]Methode pour trouver une valeur qui apparait plusieur fois
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/05/2006, 13h11
  2. Methode pour verouillé une checkbox
    Par zandb69 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 23/05/2006, 11h07
  3. [ODBC] Quitter l'interface pour accéder à une BDD Access
    Par tigzirt dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2006, 13h33
  4. methode pour exécuter une class dans un jar
    Par yann_p dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2006, 17h47
  5. Quel logiciel utiliser pour shématiser une bdd relationnel
    Par MrEddy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 22/07/2005, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo