Giter VIP home page Giter VIP logo

sqltrismegiste's Introduction

sqltrismegiste's People

Contributors

rudi-bruchez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sqltrismegiste's Issues

Le noeud Columns (Colonnes) de niveau base de données (level="Database" ) n'apparait pas !

Le noeud Columns (Colonnes) de niveau base de données (level="Database" ) n'apparait pas dans l'arborescence de gauche (dans l'IHM)
Alors que le fichier Columns.xml existe bien dans le CorpusHermeticum.
Cependant après analyse est génération des fichiers html zipées , le fichier Columns.htm est bien généré
NB : Ce problème est dû à une petie erreur qui s'est glissé dans le fichier Columns.xml

Il manque le 's' à Databses
folder="Database" --> folder="Databases"
Après ce correctif le noeud "Colonnes" réapparaît normalement dans l'arborescence

CorpusHermeticum : VolumeInfos.xml génère des erreurs en mode exécution !

Le fichier VolumeInfos.xml gnère une erreur en mode exécution !
Le problème provient de la valeur attribuée à "versionMajor"
En remplaçant la ligne <query versionMajor="11"> par <query versionMajor="11-"> , l'erreur n’apparaît plus.

Remarque :
Cette erreur se produit à l'identique, en mode exécution, et ce, pour les 10 autres fichiers xml CorpusHermeticum ci-dessous :

MissingIndexWarnings.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

VLF.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

CardinalityEstimation.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

QueryExecutionCounts.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

SPExecutionCounts.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

SPAvgElapsedVariableTime.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

SPAvgElapsedTime.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

SPLogicalReads.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

SPWorkerTime.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

TopIOStatements.xml
Remplacer <query versionMajor="11"> par <query versionMajor="11-">

Merci.

A+

Déclaration de la ressource "XEvents" manquante !

Plantage à l'exécution du programme !
En effet :
1 - Il manque la déclation de la ressource XEvents
<s:String x:Key="XEvents">XEvents</s:String>
dans le fichier : ..\SQLTrismegiste\SQLTrismegiste\Resources\FR.xaml

2 - Cf Issue #1
Un petit loupé dans le correctif que tu as apporté ce matin à Columns.xml
Il fallait rajouter le 's' de databases à la propriété folder et non pas à level
Sauf erreur de ma part, on devrait avoir ceci :
<hermeticus name="Columns" level="Database" folder="Databases"
au lieu de la ligne actuelle (inversée) ci-dessous :
<hermeticus name="Columns" level="Databases" folder="Database"

A+

Impossible d'effectuer un scroll vertical sur la grille "Base de données" de l'onglet "Connexion"

Bonjour,
La grille (DataGrid x:Name=dgDatabases"), de l'onglet "Connexion" ne permet pas d'effectuer un scroll vertical lorsque la liste des bases de données est longue .
La hauteur (Height) de la gille (DataGrid x:Name=dgDatabases") est semble-t-il automatique mais sans la possibilité donnée à l'utilisateur pour effectuer un scroll vertical.
Lorsque la grille contient plusieurs dizaines de bases de données, dépassant la hauteur de l'écran, il devient impossible d'accéder et de sélectionner (cocher) les bases de données situées en bas de liste. Celles-ci sont invisibles et inaccessibles !
Il serait souhaitable, que la grille (DataGrid x:Name=dgDatabases") s'adapte à la hauteur de l'écran tout en permettant, à l'utilisateur final, d'effectuer un scroll vertical, et ce, pour pouvoir accéder et sélectionner toutes les bases de données du Serveur.

Merci.
A+

Le CorpusHermeticum VLF.xml génère des erreurs si on sélectionne plus de 2 bases !

Le CorpusHermeticum VLF.xml génère, en mode exécution, des erreurs, dès lors qu'on sélectionne plus de 2 bases de données ! L'erreur que j'ai intercepté au niveau Serveur est la suivante :

Msg 2714, Level 16, State 6, Line 1
There is already an object named '#VLFInfo' in the database.

Je te propose les modifications suivantes :
1 - Modifier le niveau (level) du fichier VLF.xml de level="Database" en level="Server"
puisque le script (sp_MSforeachdb) liste les VLF de toutes les bases de données du Serveur.
2 - Rajouter les DROP des tables temporaires si elles existent déjà, et ce, avant leur création

En conclusion, je te propose le script final ci-dessous, testé sans erreur :

<?xml version="1.0" encoding="utf-8" ?>
<hermeticus name="VLF" level="Server" folder="Databases"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Corpus.xsd">
  <header>
    <description lang="fr" tooltip="VLF" label="VLF" />
    <description lang="en" tooltip="VLF" label="VLF" />
  </header>
  <queries>
    <query versionMajor="11-*">
      <![CDATA[
IF OBJECT_ID('tempdb.dbo.#VLFInfo') IS NOT NULL
  DROP TABLE #VLFInfo;
CREATE TABLE #VLFInfo (RecoveryUnitID int, FileID  int,
					   FileSize bigint, StartOffset bigint,
					   FSeqNo      bigint, [Status]    bigint,
					   Parity      bigint, CreateLSN   numeric(38));

IF OBJECT_ID('tempdb.dbo.#VLFCountResults') IS NOT NULL
  DROP TABLE #VLFCountResults;
CREATE TABLE #VLFCountResults(DatabaseName sysname, VLFCount int);

EXEC sp_MSforeachdb N'Use [?];

				INSERT INTO #VLFInfo
				EXEC sp_executesql N''DBCC LOGINFO([?])'';

				INSERT INTO #VLFCountResults
				SELECT DB_NAME(), COUNT(*)
				FROM #VLFInfo;

				TRUNCATE TABLE #VLFInfo;'

SELECT DatabaseName, VLFCount
FROM #VLFCountResults
ORDER BY VLFCount DESC OPTION (RECOMPILE);
]]>
    </query>
  </queries>
 </hermeticus>

A+

L'ordre d'apparition des noms de répertoires (Folders.xml) n'est pas respecté dans index.html

Bonjour,

J'ai constaté que dans le fichier index.html, l'ordre d'apparition des noms des dossiers est différent de l'ordre dans lequel ils ont été déclarés dans le fichier Folders.xml.
L'ordre est cependant bien respecté dans l'IHM, c.à.d. dans la "TreeView" située à gauche de la fenêtre.
En outre, les noms des dossiers ne sont pas traduits dans le fichier index.html
Exemple :
--- Folders.xml et IHM (TreeWiew)

Système 
Sécurité 
Maintenance 
Bases de données 
Performances
Requêtes 
SQLOS 

Puis dans index.html on trouve les mêmes rubriques (en anglais uniquement !), mais dans un ordre différent (?).

Maintenance
Databases
Queries
Server
Security 
Performances 
SQLOS 

Je suggère que les noms des dossiers apparaissent dans le même ordre de leur déclaration dans le fichier Folders.xml comme ils apparaissent déjà dans l'IHM dans la TreeWiew située à gauche de la fenêtre.

Merci,

A+

CorpusHermeticum : DatabaseFileSize.xml Erreur dans Exp. colonne max_size !

CorpusHermeticum > DatabaseFileSize.xml
Une erreur s'est glissée dans l'expression de la colonne max_size

Sauf erreur de ma part, il faudra remplacer l'expression ci-dessous :

CASE mf.max_size
        WHEN 0 THEN 'fixe'
        WHEN -1 THEN 'unlimited'
        WHEN 268435456 THEN '2 To'
        ELSE CAST((CAST(mf.size as bigint) * 8192) / 1024 / 1024 as varchar(50)) + ' Mo'   -- L'erreur est sur cette ligne (mf.max_size au lieu de mf.size) ! 
END as max_size, 

Par :

CASE mf.max_size
        WHEN 0 THEN 'fixe'
        WHEN -1 THEN 'unlimited'
        WHEN 268435456 THEN '2 To'
        ELSE CAST((CAST(mf.max_size as bigint) * 8192) / 1024 / 1024 as varchar(50)) + ' Mo' -- mf.max_size au lieu de mf.size
END as max_size,

Ou bien (idem, mais plus "compact" ) par :

CASE mf.max_size
        WHEN 0 THEN 'fixe'
        WHEN -1 THEN 'unlimited'
        WHEN 268435456 THEN '2 To'
        ELSE CAST((CAST(mf.max_size as bigint) / 128 as varchar(50)) + ' Mo'  -- mf.max_size au lieu de mf.size
END as max_size,

Merci.
A+

CorpusHermeticum : DatabaseFileSize.xml en erreur, ne compile pas !

Une petite erreur (une parenthèse en trop) s'est glissée dans la requête SQL du fichier DatabaseFileSize.xml

"Msg 156, Level 15, State 1, Line 11
Incorrect syntax near the keyword 'as'. "

En plus, je te suggère pour l'homogénéité des unités, et pour un plus de clarté dans les noms des colonnes, la requête corrigée puis légèrement modifiée ci-dessous :

<?xml version="1.0" encoding="utf-8" ?>
<hermeticus name="DatabaseFileSize" level="Server" folder="Databases"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Corpus.xsd">
  <header>
    <description lang="fr" tooltip="Espace dans les fichiers des bases de données" label="Fichiers et taille de bases" />
  </header>
  <queries>
    <query versionMajor="*">
      <![CDATA[
SELECT
	DB_NAME(mf.database_id) as [db_name],
	mf.file_id   as [file_id],
	mf.type_desc as [type_desc],
	mf.name as [logical_file_name],
	(CAST(mf.size as bigint) * 8192) / 1024 / 1024 as size_MB,
	CASE mf.max_size
		WHEN 0 THEN 'fixe'
		WHEN -1 THEN 'unlimited'
		WHEN 268435456 THEN '2 TB'
		ELSE CAST(CAST(mf.max_size as bigint) / 128 as varchar(50)) + ' MB'
	END as max_size,
	CASE mf.is_percent_growth
		WHEN 1 THEN CAST(mf.growth as varchar (20)) + '%'
		ELSE CAST((mf.growth * 8192) / 1024 / 1024  as varchar (20)) + ' MB'
	END AS grow
FROM sys.master_files mf
ORDER BY mf.database_id, mf.file_id
OPTION (RECOMPILE);
]]>
    </query>
  </queries>
 </hermeticus>

A+

Fichier résultat Index.html la date ne s'affiche pas, à la place on voit YYY-MM-DD HH:MM !

Bonjour,
Dans le fichier résultat index.html, au lieu d'afficher la date du jour, on voit apparaitre le texte YYYY-MM-DD HH:MM !
Remarque :
Je pense que le problème provient du fichier
.\SQLTrismegiste\CorpusManager\Manager.cs (ligne 284 et ligne 385)

Remarque : J'ai effectué un test.
En remplaçant
{"DATE", String.Format("YYYY-MM-DD HH:MM", DateTime.Now) }
par
{"DATE", String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now) }
ou bien par
{"DATE", DateTime.Now.ToString("s") }
Cela fonctionne, on voit désormais apparaître la vraie date et heure du jour. Je te laisse le soin de choisir la bonne méthode (?).
PS :
Merci beaucoup pour vos contributions dans ce projet. SQLTrismegiste est un excellent outil, super. Bravo !

A+

CorpusHermeticum : Memory.xml n'est pas compatible SQL Server 2008 R2 !

La requête SQL du fichier Memory.xml fonctionne bien sous SQL server 2012 et supérieure,
mais, elle n'est pas compatible avec SQL Server 2008 R2 !
Il se trouve que beaucoup de Serveurs de production sont encore en version SQL Server 2008 R2.
Afin de rendre cette requête compatible SQL Server 2008 R2, je te propose la modification suivante :

<?xml version="1.0" encoding="utf-8" ?>
<hermeticus name="Memory" level="Server" folder="Server"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Corpus.xsd">
  <header>
    <description lang="fr" tooltip="Mémoire utilisée" label="Mémoire utilisée" />
  </header>
  <queries>
<query versionMajor="*">
<![CDATA[
DECLARE @serverVersion INT;
SET @serverVersion = CAST (LEFT(CAST(SERVERPROPERTY('productversion') AS NVARCHAR(128)),CHARINDEX('.', CAST(SERVERPROPERTY('productversion') AS NVARCHAR(128)),1)-1) AS INT)
IF @serverVersion >=  11
EXEC sp_executesql N'SELECT 
  cpu_count AS [Logical CPU Count]
, scheduler_count, hyperthread_ratio AS [Hyperthread Ratio]
, cpu_count/hyperthread_ratio AS [Physical CPU Count]
, physical_memory_kb/1024 AS [Physical Memory (MB)]
, committed_kb/1024 AS [Committed Memory (MB)]
, committed_target_kb/1024 AS [Committed Target Memory (MB)]
, max_workers_count AS [Max Workers Count]
, affinity_type_desc AS [Affinity Type]
, sqlserver_start_time AS [SQL Server Start Time]
, virtual_machine_type_desc AS [Virtual Machine Type]
FROM sys.dm_os_sys_info WITH (NOLOCK)
OPTION (RECOMPILE)'
ELSE
EXEC sp_executesql N'SELECT
  cpu_count AS [Logical CPU Count]
, scheduler_count, hyperthread_ratio AS [Hyperthread Ratio]
, cpu_count/hyperthread_ratio AS [Physical CPU Count]
, physical_memory_in_bytes/1024/1024 AS [Physical Memory (MB)]
, bpool_committed/128  AS [Committed Memory (MB)]
, bpool_commit_target/128  AS [Committed Target Memory (MB)]
, max_workers_count AS [Max Workers Count]
, affinity_type_desc AS [Affinity Type]
, sqlserver_start_time AS [SQL Server Start Time]
, virtual_machine_type_desc AS [Virtual Machine Type]
FROM sys.dm_os_sys_info WITH (NOLOCK)
OPTION (RECOMPILE)'
]]>
</query>
  </queries>
 </hermeticus>

PS :

  • Dans la première partie "@serverVersion >= 11" (SQL Server 2012 et supérieure) la requête SQL est exactement comme avant, mise à part une mise en forme du texte.
  • J'ai juste adapté la 2ème partie (ELSE) "@serverVersion <= 10 " pour SQL Server 200 R2
  • Sinon, je trouve l'outil SQLTrismegiste génial. Merci !
    A+

Le répertoire des fichiers résultats html n'est pas réinitialisé lors d'une demande analyse !

J'ai constaté que le répertoire "C:\Users\<User_Name>\Documents\SQLTrismegiste\<Instance_Name>"
n'est pas réinitialisé (n'est pas vidé) lors de l'appui sur le bouton "Lancer l'analyse" et donc avant la génération de nouveaux fichiers html.
Comme, je présume que les erreurs, sont gérées ("catchées"), après la modification d'un fichier xml CorpusHermeticum, et en cas d'erreur, il n'est pas rare que l'on ne voit pas le résultat du nouveau fichier xml mis à jour, mais le résultat de l'ancien fichier xml, c.à.d , on visualise un ancien fichier html du répertoire "C:\Users\<User_Name>\Documents\SQLTrismegiste\<Instance_Name>\" !
ficher html généré par une ancienne analyse ! Cela devient très "perturbant" notamment en phase d'édition des fichiers xml CorpusHermeticum
En conclusion :
Je suggère de vider le répertoire "C:\Users\<User_Name>\Documents\SQLTrismegiste\<Instance_Name\"
et ce, avant de générer de nouveau fichiers html lors d'un demande d'analyse.

Merci.

A+

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.