SQL Process Explorer

Pour moi, sous Windows, l’application la plus importante à toujours été (de loin) Process Explorer de Mark Russinovich, alors quand j’ai commencer a remplir des fonctions de DBA un programme similaire m’a immédiatement manqué pour superviser SQL Server.

Comme j’ai été un développeur (depuis le ZX81 il y a quelques années ;) ) avant de devenir DBA j’ai fini par décider de faire un moi même une application de monitoring pour SQL Server. Et puisque j’ai toujours été reconnaissant à Mark pour la gratuité (et la qualité) de son travail, c’est maintenant mon tour d’offrir mon programme à ceux qui le voudront :

Le programme ne nécessite pas d’installation (comme procexp), c’est un simple executable .NET Framework 3.5 Client profile x86 (~400 Ko) :

Download SQLProcexp

Historique des versions

Il peut donc être lancer de n’importe quel répertoire (dans lequel il va générer un fichier .config pour enregistrer vos paramètres).

Le mode de capture principal est basé sur sys.sysprocesses, sys.dm_exec_requests et sys.dm_exec_sessions et double cliquer sur une ligne de la liste bascule sur l’onglet « Query » pour visualiser la requête et la ré-exécuter si besoin :

QuerySample

Les plus hauts niveaux de CPU, logical read, physical read, write, Wait time, Signal wait et 2 liste de wait configurable sont historisés. En passant la souris sur les histograms on obtient les informations de cette période avec la requête SQL qui était exécuté à ce moment par le process le plus consommateur du compteur concerné :

PopStatem

Il est donc simple de voir ce qu’il se passe en temps réel sur une instance, ou à un n’importe quel moment passé enregistré.

Les 2 listes de waits configurables sont par défaut (le titre se trouve avant les ‘:’ et les waits surveillés sont séparés avec des ‘;’ ensuite) :

IOWait:WRITELOG;IO_COMPLETION;PAGEIOLATCH_DT;PAGEIOLATCH_EX;PAGEIOLATCH_KP;PAGEIOLATCH_SH;PAGEIOLATCH_UP;ASYNC_IO_COMPLETION;

CXPacket:CXPACKET

J’ai ajouté un mode de capture expérimental basé sur la vue sys.dm_exec_query_stats (group by query_hash). Ce mode est accessible dans le menu option :

MenuDmQueryStats

Dans ce mode, vous pouvez voir en violet les requêtes exécutées en parallèle, avec un elapsed time inférieur au worker time (pas une méthode parfaite je dois admettre).

Voilà, après cette petite introduction il ne vous reste plus qu’a l’expérimenter par vous même, en espérant que ça vous sera aussi utile qu’a moi. Si vous avez des idées je suis ouvert à toutes les propositions d’amélioration et si vous trouvez des bugs vous pouvez les signaler dans les commentaires de cette page ou par mail : sqlprocexp@gmail.com

 

Publicités

Le voyage dans le temps

Pour Noël une petite balade ! :) Mais pour voyager dans le passé ou dans le futur il faut d’abord bien comprendre ce qu’est le temps…

Et en fait intuitivement tout le monde a une assez bonne idée de ce que c’est, par exemple on sait tous que si le temps s’arrêtait subitement, et bien tout serait simplement immobile d’un seul coup. Ce qu’on sait peut-être un peu moins c’est qu’a ce moment on ne pourrait plus voir ce monde « immobile », puisque la lumière elle même immobile ne nous parviendrait plus, mais bon, ce n’est pas très grave, et en gros nous avons tous une bonne « intuition » de ce qu’est le temps… Parce que le temps c’est n’est pas si compliqué, le temps c’est le mouvement de tout ce qu’il y a dans l’univers, si on « ralenti » ces mouvements (on verra comment ensuite) alors le temps ralentit. Et si les mouvements font « marche arrière » alors le temps recule. Enfin si les mouvements s’accélèrent alors le temps s’accélère.

Il y a autre chose qu’il faut souligner, et c’est important puisque c’est ce qui va nous permettre de voyager dans le temps, c’est que la vitesse de ces mouvements n’est pas obligatoirement la même dans tout l’univers : les mouvements peuvent s’arrêter seulement dans une zone bien définie de l’univers et continuer normalement partout ailleurs. Ou ils peuvent aller « plus vite » dans une zone, et alors le temps s’y écoule plus rapidement que dans le reste de l’univers.

Donc le temps n’est pas « absolu » dans l’univers, ce n’est pas quelque chose d’abstrait, qui engloberait tout l’univers, pratiquement « séparé » de l’univers même, non, le temps c’est très concret, c’est le mouvement, si on arrête tous les mouvements, on arrête le temps !.. tout simplement j’ai envie de dire.

Et le voilà notre moyen de « transport » dans le temps ! : si on conserve le temps « normal » dans une machine et qu’on fait revenir en arrière tous les mouvements de l’univers (ou bien seulement du système solaire pour rester modeste :) ) et bien on « voyage » dans le passé !

Mais de nombreux fantasmes sont liés au voyage dans le passé, de « se rencontrer soit même » par exemple… C’est mal comprendre comment le voyage dans le passé se déroule car comme on vient de le voir si un voyageur veut revenir dans le temps dans une région de l’univers alors il doit inverser tous les mouvements de cette région sauf les siens… En effet le voyageur ne doit pas revenir en arrière, sinon il ne « voyagerait » pas dans le passé finalement, il reviendrait avec la zone entière (et ne se rendrait même pas compte de ce qui se passe…). Donc la « matière » du voyageur, à l’intérieur de la machine, continue son chemin normal dans le temps, mais du coup ça veut dire que cette « matière », du voyageur, ne fait plus « partie » de l’univers qui revient en arrière à l’extérieur de la machine…

Et c’est primordial de le prendre en compte parce que ça veut dire que cette zone revient dans un passé différent de ce qu’il a été ! un passé sans la « matière » du voyageur… Pour bien comprendre un exemple : imaginons que le voyageur juste avant de monter dans sa machine ait eu une discussion dans un bar avec un ami. Au départ du voyage toute la matière de cette zone de l’univers revient en arrière, donc l’ami se « dirige » à reculons vers ce bar. Le voyageur lui ne se dirige pas vers le bar à reculons, il est dans la machine, il est exclu du retour en arrière de la zone. Quand l’ami arrive au bar il n’y rencontre pas le voyageur, la « matière du voyageur », puisqu’elle est dans la machine… Du coup il parle tout seul ?

Non, il ne parlera même pas, il ne parlera « plus » on peut dire, puisqu’il n’a plus d’interlocuteur… Même si l’univers évolue à l’envers les règles des interactions de la matière continue d’y être respectés, elles sont juste à l’envers : par exemple si un objet avait rebondi sur un autre, alors si on fait revenir en arrière cette zone en retirant un des deux objet, celui qui reste ne rebondit pas tout seul dans ce « nouveau passé », il continue sa course, « à l’envers » certes, mais sans rebondir cette fois, dans un passé différent de ce qu’il avait été, parce que la matière en présence est elle même différente.

Plus généralement, exclure une partie de la matière d’une zone de l’univers qui revient en arrière correspond à un effet papillon « à l’envers » dans cette zone, les événements « inversés » vont changer de plus en plus par rapport à ce qu’ils ont été à mesure que la « différence initiale » va se propager, et petit à petit c’est tous les événements qui « vont » être différents de ce qu’ils avaient été.

Alors quid de tuer un « parent » !? ça nous fait disparaître d’un coup ? Voyons ce cas : un voyageur revient dans le temps, en fait on l’a vu, il faut plutôt dire « tous les mouvements d’une région de l’univers reviennent en arrière sauf ceux d’un voyageur ». Le parent revient donc en arrière, mais dans un univers SANS le voyageur qui est dans la machine. Comme on l’a vu petit à petit les interactions que le voyageur y avait faites ne se produisent pas à l’envers comme elles avaient été faite par lui et cela conduit à un passé différent A tel point que la mère n’accouche même pas de cet enfant !! Et oui, la matière du voyageur n’est pas revenu en arrière, elle, et il n’est donc pas redevenu un bébé, et sa mère ne peut pas « redevenir enceinte » du voyageur puisque le bébé n’est pas « revenu » lui… Elle va faire autre chose :) … Tout les « parents » du voyageur sont tous bien revenu en arrière, mais dans un passé qui fini par être complètement différent de ce qu’il a été quand le voyageur était là. Bref si on arrête la machine et que le voyageur tue n’importe lequel de ses parent, et bien rien ne se passe, il ne disparaît pas.. (il va juste en prison car on peut parier que la police de l’époque ne croira pas son histoire !! :) )

Bon, voilà pour la théorie, maintenant passons à la pratique ! :-)

Pour voyager dans le temps dans une zone de l’univers, donc, il faut influencer les mouvements dans cette zone, les ralentir, les accélérer, ou même les inverser… Mais comment faire ?

L’un des « paramètre » central du mouvement, donc du temps, c’est l’inertie. L’inertie c’est la résistance au changement de vitesse d’un objet, l’accélération ou le ralentissement. On n’est pas toujours conscient de l’inertie car elle est proportionnelle à la masse et généralement on déplace des objets relativement léger, mais par exemple on la sent bien quand il faut pousser quelqu’un sur une balançoire, d’autant plus si la personne est lourde. L’inertie, proportionnelle à la masse, est au « centre » de la façon dont les mouvements se font, donc l’inertie/masse est au « centre » de la façon dont « s’écoule » le temps.

Donc, l’un des problème central à résoudre pour voyager dans le temps, pour modifier les mouvements d’une région de l’univers, est de changer l’inertie dans cette zone.

Il y a deux possibilités : soit on change l’inertie d’une zone toute entière et le voyageur conserve la sienne, soit c’est le voyageur qui change son inertie propre dans sa machine et l’univers tout entier conserve la sienne. On voit tout de suite que la difficulté avec la première solution c’est qu’il faut influencer de façon uniforme l’inertie d’une région entière, suffisamment grande (de l’ordre d’un système solaire disons), pour l’augmenter ou la réduire par rapport à un voyageur qui conserverait la sienne… En pratique c’est un peu difficile à mettre en oeuvre…

Par contre influencer l’inertie d’une zone confinée est plus facilement concevable… Si on augmentait l’inertie/masse dans une machine ça aurait pour effet de rendre encore plus difficile tout les changements de vitesse, par exemple en poussant de la même force la personne sur la balançoire elle se mettrait en mouvement plus lentement. Tous les changement de mouvements dans la machine serait plus « difficile », le temps y serait « ralenti ». Et puisqu’à l’extérieur de la machine, dans le monde, le temps s’écoule toujours normalement, et bien ça y est ! nous voyageons dans le futur !! :) .. Le voyageur dans la machine voit tout dans le monde se mettre à bouger très vite, par contre vu du monde, dans sa machine, il semble pratiquement immobile.

Mais attention, comme pour le voyage dans le passé on ne voyagera pas dans le même futur que s’on avait participé à ce monde, forcément, car on est dans la machine, donc on est à l’écart du monde, on n’a aucune influence dessus, et il évolue sans nous. Mais quand même, il évolue « dans le futur » par rapport au voyageur, c’est le plus important, et on arrivera 20 ans plus tard en découvrant des technologies nouvelles, et bien sur les gens auront 20 ans de plus que nous hé hé :)

A l’opposé si on réduit l’inertie dans une petite zone, dans une machine, tous les mouvements s’y feront plus vite, et donc le temps s’y écoulera plus vite que dans l’univers.

Et voilà :) En conclusion, je pense que revenir dans le passé, même d’une petite zone, c’est presque certainement, et malheureusement, impossible, et même si ça l’était on a vu que ce serait sous certaines conditions, par exemple ça ne serait en aucun cas instantané, ça prendrait un « certain temps« , un « temps à l’envers », le temps de TOUT faire « bouger » dans la zone concernée à rebours, il ne pourrait en aucun cas y avoir de « porte » qui instantanément nous projetterait des années en arrière, ce serait simplement mal comprendre le temps que d’imaginer ce « moyen » de voyager dans le passé.

Par contre voyager dans le futur c’est probablement possible, il suffit « simplement » d’augmenter l’inertie/masse d’un voyageur dans une machine comme on l’a vu, le temps de l’univers s’écoulerait normalement et le voyageur resterait « figé », donc il voyage dans le futur. On peut imaginer des applications : une nouvelle sorte de frigo : le frigo à inertie !! on arrête le temps des aliments :) ça c’est du progrès ! A l’inverse on peut aussi concevoir une prison à inertie, il suffit dans ce cas de réduire l’inertie du « voyageur prisonnier », une minute dans le monde correspond pour lui à une année.. les peines de prisons sont exécutés juste à la fin du procès ! en cinq minutes :) Par contre pour le vin, alors là c’est une vraie révolution !! :D ;)

La réflexion de la lumière

Une des erreur qui a eu le plus de conséquences en physique concerne un phénomène très simple en apparence : la réflexion de la lumière sur un miroir. Cela dit l’erreur est peut-être justement due à cette impression de simplicité…

Dans les expériences d’optiques, on postule (depuis toujours.. :o ) que la lumière est réfléchie par les miroirs en repartant à la même vitesse qu’elle est arrivée, comme s’il s’agissait d’une simple « balle qui rebondissait sur un mur » en mécanique classique…

La lumière n’a pourtant rien a voir avec une balle faite de matière, elle n’a pas de masse, elle est seulement énergie, elle n’obéit donc à aucun des effets de l’inertie, principale responsable de la conservation des vitesses dans le rebond des objets « massique » à notre échelle. Et on aurait donc du se poser « sérieusement » la question de la conservation de la vitesse de la lumière avant de postuler qu’elle avait la même vitesse dans toutes les directions et dans tout les repères…

Que se passe t’il donc lors de la réflexion de la lumière sur un miroir ? La « réaction » de la lumière au contact d’un obstacle est un processus relativement complexe. Tout d’abord la lumière, composée d’onde électromagnétique, ne « rebondie » pas toujours sur la matière qu’elle rencontre, elle n’est pas toujours réfléchie, selon la nature de la matière qu’elle touche elle peut aussi être absorbée, donc « disparaître » (en fait se transformer en une autre forme d’énergie), ou être réfractée. Bref la lumière « interfère » avec les atomes de la matière qu’elle rencontre d’une façon infiniment plus complexe qu’une balle sur un mur.

Et dans le cas particulier d’un miroir, la lumière peut bien arriver à n’importe quelle vitesse, elle va toujours interagir avec les atomes (et surtout leurs électrons) de la même façon, pour être ré-émise à une vitesse « relative » au miroir lui même, la vitesse de la lumière.

On notera que la fréquence, quantifiant l’énergie d’une onde électromagnétique, est conservée puisque la ré-émission se fait au « rythme » de la réflexion donc l’énergie est conservée. Et puisqu’elle n’a pas de masse cette réduction de vitesse (ou augmentation si la lumière allait « relativement » moins vite que l’objet) n’engendre pas non plus de variation « d’énergie de la lumière » qui est bien conservée.

Voilà, on considère depuis toujours que la lumière « conserve » sa vitesse incidente en « rebondissant » sur un miroir mais ce n’est presque certainement pas le cas, et cette erreur a eu des conséquences importantes puisqu’à la suite de certaines expériences importantes « on » en a postulé rien moins que « la vitesse de la lumière C, est toujours la même, qu’elle soit émise par un objet en mouvement ou au repos »… Le postulat est donc « à moitié vrai » : la lumière a toujours la vitesse C dans le référentiel de tout objet qui en réfléchi ou qui en produit, mais en aucun cas elle n’a la même vitesse dans TOUT les repères (c’est d’ailleurs presque incroyable qu’on ait accépté de croire ça… :o )

La vitesse de la lumière

Pourquoi la vitesse de la lumière est-elle si fascinante ? Sans doute parce qu’elle est simplement phénoménale ! Elle fait plus de 7 fois le tour de la terre en une seconde !!! Pas seulement Paris-Tokyo hein, le tour entier de la planète ! et pas une fois, mais 7 fois !! en une seule seconde ! :-O Pas évident de bien s’imaginer cette vitesse… On dit même que c’est une vitesse « maximum ».. ce qui ajoute encore à sa légende si besoin était ! :-)

vitLum {PNG}

Limitation de vitesse dans l’univers donc à 299 792 Km/seconde (on l’appelle c). On ne pourrait pas dépasser cette vitesse. Même les extra-terrestres ultra avancés, même les vaisseaux de Stars War, ne devraient pas pouvoir aller plus vite que c… A priori on ne voit pas pourquoi, si on accélérait à fond avec un bon petit vaisseau spatial pendant une durée suffisante on devrait finir par atteindre cette vitesse énorme non ?

Remarquez avec l’accélération d’une bonne voiture il faudrait presque un an pour atteindre c donc c’est vrai que ce serait long quand même ;-) Mais non, à l’approche de la vitesse de la lumière, au bout de 11 mois disons, la voiture ne pourrait pratiquement plus accélérer… Même en écrasant le champignon :-) enfin.. on n’a pas pu essayer avec une voiture bien sur, ni un vaisseau… Eh bien alors !? Comment se fait-il qu’on en soit si certain ? Comment on est arrivé à croire une chose pareille ?

C’est à cause de résultats d’expériences  ! C’est comme ça la science, on fait une expérience, on note scrupuleusement les résultats, et on tire des conclusions, voir de jolies formules mathématiques. Par exemple on lâche un objet, une pomme par exemple et on voit qu’elle tombe par terre, donc on en déduit qu’elle est repoussée par le ciel. Et finalement on remarque que TOUT est repoussé par le ciel vers la terre et ce quel que soit son poids, alors on fait une formule mathématique sur le repoussage universel du ciel vers la terre quientérine bien la découverte… heuu.. quoi ? c’est pas le ciel qui repousse les objets ? Ha.. bon.. ben.. des fois en science on se trompe un peu d’interprétation dans les expériences… Mais.. c’est pas grave, on corrige ! ;-)

Et heureusement, par exemple jusqu’au milieu du 19 eme siècle les médecins à l’hôpital accouchaient des femmes sans se laver les mains après avoir disséqué des morts, tout juste s’ils les essuyaient :-O Du coup la mortalité infantile était énorme, à tel point que les femmes préféraient accoucher dans la rue !! Et puis quelqu’un a conseillé aux médecins de se laver les mains mais les docteurs n’avaient aucune envie d’avouer qu’ils étaient responsables de tant de morts…

Mais revenons à nos expériences décisives sur la constance de la vitesse de la lumière : il y a très longtemps, en 1728 (donc plus d’un siècle avant que les médecins ne commencent à se laver les mains ;-) ) James Bradley fit une expérience avec une lunette d’astronomie. Cette vidéo est assez bien faite, et c’est moins facile à expliquer sur une image « fixe » mais voilà :

Le point important à noter c’est que comme la terre est en mouvement dans le système solaire, à environ 30 km/seconde, on est obligé d’incliner un peu la lunette (0,0055 degré environ) dans un sens pour que la lumière reste au milieu du tube de la lunette et pour que l’image soit bonne. Six mois plus tard, quand on se dirige à 30 km/s dans l’autre sens sur l’orbite solaire, il faut l’incliner du même angle mais opposé. Et ce quelle que soit l’étoile observée !! Et voilà, je n’entre pas trop dans les détails mais il n’en a pas fallu moins pour que les scientifiques de l’époque, très perplexes quand même, en concluent que la lumière arrive toujours à la même vitesse quelle que soit l’étoile visée… Et on les comprend.

Presque.. parce qu’en réalité.. la seule chose dont on est vraiment certain c’est de la vitesse de la lumière dans le tube de la lunette !… Eh oui, parce que même si la lumière arrivait bien plus vite que c, ou plus lentement, et qu’elle soit affectée d’une manière ou d’une autre par l’atmosphère terrestre, ou même pire, par le premier verre de la lunette,si quelle que soit sa vitesse d’arrivée sur la terre elle était « calibrée » à 299 792 Km/s en interagissant avec toute cette « matière terrestre », eh bien on aurait finalement unepetite erreur dans l’interprétation de cette expérience fondatrice

Mais ce n’est pas fini ! Dans les années 1880 Fizeau fit une autre expérience :

La lumière arrive du soleil ou d’une étoile et on la canalise jusqu’a l’appareil avec des lentilles, des miroirs, etc. Et encore une fois on constate qu’elle a toujours la même vitesse, d’où qu’elle vienne ! Mais ce coup là, même vous, vous n’allez pas vous faire avoir comme avec Bradley, vous allez me dire qu’elle a très bien pu être ralentie par l’atmosphère, ou la première lentille de la première lunette qui capture cette lumière.. et vous auriez raison bien sur. Mais c’est encore pire en fait dans cette expérience car en plus la lumière traverse de l’eau aussi et elle est réfléchie sur des miroirs ce qui a une très forte chance de l’affecter également !

Les scientifiques ont postulé (sans le dire explicitement tellement c’était évident, et sans que personne ne proteste ce qui est assez étonnant dans le monde de la physique quand même), que la lumière conserve sa vitesse lors de la réflexion sur les miroirs, comme s’il s’agissait d’une simple « balle qui rebondissait sur un mur » en mécanique classique.

La lumière n’a pourtant rien à voir avec une balle faite de matière, elle n’a pas de masse, elle est seulement énergie, et n’obéit donc à aucun des effets de l’inertie, principale responsable de la conservation des vitesses dans le rebond des objets à notre échelle. Bref la lumière « interfère » avec les atomes de la matière qu’elle rencontre d’une façon infiniment plus complexe qu’une balle sur un mur.

Et dans le cas particulier d’un miroir, la lumière peut bien arriver à n’importe quelle vitesse, elle va toujours interagir avec les atomes de la même façon, pour être ré-émise à une vitesse « relative » au miroir lui même, la vitesse « c« .

Voilà. Le problème de nos jours quand on papote vitesse maximum de la lumière avec un scientifique et qu’on lui demande ce qu’il pense du changement de vitesse de la lumière quand elle entre dans l’atmosphère, traverse des lentilles, de l’eau, « rebondit » sur les miroirs c’est qu’il vous répond tout de suite : « – ha.. non non non ! la lumière ne peut pas changer de vitesse dans le vide, elle a toujours la même vitesse, partout, dans tous les sens,toujours ! « … C’est le serpent qui se mord la queue.. depuis deux siècles !

Pour leur défense il y a en effet des « espèces de preuves » de la constance de c, dans des expériences à base de muons, ou de GPS, qui laissent entendre que la théorie est juste… Mais à mon avis c’est probablement à cause d’erreurs d’interprétations des résultats à chaque fois, comme dans le cas de l’expérience où on voit bien que le ciel repousse les objets vers la terre  ;-)

Bref, le mieux c’est de vérifier tout ça ! :-) D’urgence !! ;-)