vendredi 30 mars 2012

Convertir un hostname IPv6 en IPv4

Depuis Windows Vista, la variable HttpContext.Request.UserHostAddress peut retourner une adresse au format IPv6. Il peut être utile de récupérer cette adresse au format IPv4. Voici une solution qui permet d'avoir une IPv4 à partir du hostname ou de l'adresse IPv6 :
Sources :

mardi 27 mars 2012

Optimisation du Update Set Row

La clause Set Row permet de faire des updates d'une table à partir d'un record PL/SQL. La syntaxe utilisée permet d'avoir un code très clair.

Voici un petit exemple illustrant ce principe :

vMyVariable  MyTable%RowType;

Update MyTable tab
Set Row = vMyVariable;
Where tab.Id = 5;

Il est également possible de faire un insert utilisant cette variable de la manière suivante :

Insert MyTable 
Values vMyVariable;

Cependant, l'update via un set row met à jour toutes les colonnes de la table (même la clé primaire) même si cette valeur reste inchangée. La requete équivalente à l'update ci dessus est la suivante :

Update MyTable tab
Set tab.r1 = 1,
    tab.r2 = 2,
    tab.r3 = 3,
    ...
Where tab.Id = 5;
Il n'y a pas besoin de longues explications pour comprendre que dans le cas d'une large table cela peut couter cher de mettre à jour toutes les colonnes si on ne doit juste mettre à jour une ou 2 colonnes.

Pour contrer ce problème, il suffit de définir un subset de la table à mettre à jour. Oracle comprendra alors qu'il ne doit mettre à jour que les colonnes selectionnées par la sous-requete. Il faudra aussi définir un type ne contenant que les colonnes que l'on souhaite mettre à jour. La requete suivante permet de faire ce que l'on souhaite :

update (Select v.r1,tab.r2 from MyTable tab where tab.id = 5)
       Set Row = vMyVariable;


Ainsi seules les colonnes que l'on a définie dans la sous requete sont mises à jour !

Multi desktop Windows 7

Desktops est une petite application développée par sysinternals qui permet de gérer 4 desktops en même temps dans windows. Cette application est très légère et créé jusqu'a 4 bureaux indépendants.


Article technet sur l'outil : http://technet.microsoft.com/en-us/sysinternals/cc817881
Téléchargement : http://download.sysinternals.com/files/Desktops.zip