<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog SQL d&#039;un développeur Microsoft. &#187; Index</title>
	<atom:link href="https://blog.developpez.com/ylarvor/pcategory/optimisation/index/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/ylarvor</link>
	<description>SQL or No-SQL !</description>
	<lastBuildDate>Sat, 04 Jun 2016 19:39:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>[sql serveur] Quels sont les outils pour indexer les tables en amont, pendant la modélisation ?</title>
		<link>https://blog.developpez.com/ylarvor/p5210/optimisation/index/sql_serveur_indexation_d_une_base_gagner</link>
		<comments>https://blog.developpez.com/ylarvor/p5210/optimisation/index/sql_serveur_indexation_d_une_base_gagner#comments</comments>
		<pubDate>Tue, 04 Mar 2008 13:07:46 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Index]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Si vous possèdez Power AMC, cet article ne s&#8217;adresse pas à vous car Power AMC indexe toutes les clefs étrangères sur simple demande, par contre, si vous utilisez Toad Data Modeler 4.1, vous devez préciser pour chaque entite, la création de l&#8217;index de clef etrangère. Sachez que vous pouvez gagner un temps précieux dans le [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Si vous possèdez Power AMC, cet article ne s&rsquo;adresse pas à vous car Power AMC indexe toutes les clefs étrangères sur simple demande, par contre, si vous utilisez Toad Data Modeler 4.1, vous devez préciser pour chaque entite, la création de l&rsquo;index de clef etrangère.<br />
Sachez que vous pouvez gagner un temps précieux dans le temps d&rsquo;execution de vos requêtes en indexant les clés étrangères de vos tables. c&rsquo;est un travail facile, les clés étrangères sont identifiés, il suffit de créer un index sur la clé manuellement ou à l&rsquo;aide d&rsquo;un outil.Toutes les jointures s&rsquo;en trouveront améliorées. Avant de vous cassez la tête en index recouvrant et autre analyses complexes&#8230; Pensez y! Ca a le mérite d&rsquo;être simple et efficace.</p>
<p>Vous pouvez utiliser aussi le tuning advisor de 2005 ou l&rsquo;index tuning wizard de 2000.<br />
<a href="http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/tunesql.mspx" target="_new">http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/tunesql.mspx</a></p>
<p>Vous devez néanmoins mesurer à postériori, le gain de la pause de votre index, sur les différentes requêtes&#8230; En effet,Selon Yves Drothier de JDN :</p>
<p>&laquo;&nbsp;Par défaut, les clés primaires des tables disposent d&rsquo;un index et il est pertinent de le conserver mais les clés secondaires posent un problème plus complexe. Parfois, selon le volume, la sollicitation de la base ou l&rsquo;évolution des applications métiers, les index des clés secondaires perdent de leur attrait. Il est donc préférable de poser ses index en mesurant régulièrement l&rsquo;efficacité de ses requêtes.&nbsp;&raquo;</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Comment indexer les tables en aval, en production ?</title>
		<link>https://blog.developpez.com/ylarvor/p4929/optimisation/index/optimisation_dune_base_de_donnes_index_p</link>
		<comments>https://blog.developpez.com/ylarvor/p4929/optimisation/index/optimisation_dune_base_de_donnes_index_p#comments</comments>
		<pubDate>Sun, 24 Jun 2007 11:00:00 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Index]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Pour indexer une base de données, utiliser l&#8217;assistant parametrage du moteur de bases de données sql serveur 2005. Dans un premier temps, il est nécessaire de capturer une trace à l&#8217;aide du query analyser. On stocke l&#8217;information dans un fichier ou une table de bases de données.exemple :USE AdventureWorksSELECT *FROM Production.ProductORDER BY Name ASC ; [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Pour indexer une base de données, utiliser l&rsquo;assistant parametrage du moteur de bases de données sql serveur 2005.</p>
<p>Dans un premier temps, il est nécessaire de capturer une trace à l&rsquo;aide du query analyser. On stocke l&rsquo;information dans un fichier ou une table de bases de données.<br />exemple :<br />USE AdventureWorks<br />SELECT *<br />FROM Production.Product<br />ORDER BY Name ASC ;</p>
<p>Dans un second temps, on lance l&rsquo;assistant parametrage du moteur de bases de données, on indique sur quel trace on va travailler, sur quel base et quel table portera l&rsquo;analyse. On lance le conseiller et il nous fournit des recommandations.</p>
<p>Dans le cas présent, un index portant sur name.</p>
<p>Attention! sur des petites requetes ( 20 lignes ), le temps d&rsquo;execution est trop court pour pouvoir mettre en place une optimisation. Meme si l&rsquo;analyse de la requete permet d&rsquo;imaginer la mise en place d&rsquo;un index.</p>
<p>exemple :<br />USE Test<br />SELECT item,color,sum(quantity)FROM inventory2 GROUP BY item,color,quantity order by quantity</p>
<p>un webcast pour comprendre sur le site technet :</p>
<p><a href="http://www.microsoft.com/France/Vision/ListTechNet.aspx?Qry=module+17&amp;S=x&amp;amp;amp;amp;Did=56042EEA-FE57-4207-9FB0-538F1025C49A&amp;Pid=&amp;Nid=&amp;Cid=64ed8bfb-e127-4346-ad6f-2c93ccd6f991&amp;Tid=&amp;x=24&amp;y=13" target="_new">http://www.microsoft.com/France/Vision/ListTechNet.aspx?Qry=module+17&amp;S=x&amp;amp;amp;amp;Did=56042EEA-FE57-4207-9FB0-538F1025C49A&amp;Pid=&amp;Nid=&amp;Cid=64ed8bfb-e127-4346-ad6f-2c93ccd6f991&amp;Tid=&amp;x=24&amp;y=13</a></p>
<p>un didactiel microsoft :<br /><a href="http://technet.microsoft.com/fr-fr/library/ms166575.aspx" target="_new">http://technet.microsoft.com/fr-fr/library/ms166575.aspx</a></p>
<p>Pour information, il existe aussi un outil de paramétrage des index sous sql serveur 2000.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>choix des tables et colonnes à indexer.</title>
		<link>https://blog.developpez.com/ylarvor/p4916/optimisation/index/choix_des_tables_et_colonnes_indexer</link>
		<comments>https://blog.developpez.com/ylarvor/p4916/optimisation/index/choix_des_tables_et_colonnes_indexer#comments</comments>
		<pubDate>Sat, 25 Aug 2007 11:00:00 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Index]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Indexer&#8230; les tables qui ont de nombreuses lignes ( au moins 100 000 ). les colonnes souvent utilisées dans les requetes. les colonnes utilisées dans les fonctions d&#8217;agregation les colonnes utilisées dans les requetes group by les colonnes utilisées dans les requetes order by les colonnes utilisées dans les jointures, nottament les clef étrangères! Ne [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><strong>Indexer&#8230;</strong><br />
les tables qui ont de nombreuses lignes ( au moins 100 000 ).<br />
les colonnes souvent utilisées dans les requetes.<br />
les colonnes utilisées dans les fonctions d&rsquo;agregation<br />
les colonnes utilisées dans les requetes group by<br />
les colonnes utilisées dans les requetes order by<br />
les colonnes utilisées dans les jointures, nottament les clef étrangères!</p>
<p><strong>Ne pas indexer&#8230;</strong><br />
Les tables qui ont peu de lignes ( moins de 10 000 )<br />
Les colonnes utilisées rarement dans les requêtes<br />
Les colonnes de taille importante<br />
Les colonnes souvent modifiées mais peu interrogées.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FILL_FACTOR  : Définir le remplissage de l&#8217;index.</title>
		<link>https://blog.developpez.com/ylarvor/p4918/optimisation/index/fill_factor_dfinir_le_remplissage_de_lindex</link>
		<comments>https://blog.developpez.com/ylarvor/p4918/optimisation/index/fill_factor_dfinir_le_remplissage_de_lindex#comments</comments>
		<pubDate>Fri, 24 Aug 2007 11:00:00 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Index]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[&#171;&#160;Le remplissage de l&#8217;index par defaut determine la quantité d&#8217;espace que SQL Serveur doit réserver lorsqu&#8217;il crée un nouvel index avec les données existantes. La définitition du facteur de remplissage suppose un compromis ; si vous définissez un facteur trop élevé, SQL Serveur ralentit lorsque vous ajoutez des données à une table. Toutefois, un facteur [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&laquo;&nbsp;Le remplissage de l&rsquo;index par defaut determine la quantité d&rsquo;espace que SQL Serveur doit réserver lorsqu&rsquo;il crée un nouvel index avec les données existantes. La définitition du facteur de remplissage suppose un compromis ; si vous définissez un facteur trop élevé, SQL Serveur ralentit lorsque vous ajoutez des données à une table. Toutefois, un facteur de remplissage fixé trop bas risque d&rsquo;affecter les performances en lecture de façon inversement proportionnelle au facteur de remplissage. Par exemple, un taux de remplissage de 25% peut diviser les performances en lecture par 4, mais il permet d&rsquo;accomplir plus rapidement des mises à jour importantes qu&rsquo;à l&rsquo;origine.&nbsp;&raquo;</p>
<p>Par défaut, le remplissage de l&rsquo;index est établi à 0. Mais la plage admise s&rsquo;etend de 0 à 100.</p>
<p>Pour définir un facteur de remplissage, une valeur faible laisse plus de place pour les insertions sans necessiter de fractionnements de pages, mais l&rsquo;index est plus encombrant.<br />Une valeur forte laisse moins de place aux insertions mais l&rsquo;index prend moins de place.</p>
<p>exemple: sp_configure &laquo;&nbsp;fill factor (%)&nbsp;&raquo;,90</p>
<p>cet exemple configure la valeur par defaut du serveur</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>INDEX.</title>
		<link>https://blog.developpez.com/ylarvor/p4975/optimisation/index/index</link>
		<comments>https://blog.developpez.com/ylarvor/p4975/optimisation/index/index#comments</comments>
		<pubDate>Thu, 03 May 2007 11:00:00 +0000</pubDate>
		<dc:creator><![CDATA[ylarvor]]></dc:creator>
				<category><![CDATA[Index]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[La syntaxe d&#8217;utilisation de CREATE INDEX est la suivante : CREATE [UNIQUE] [CLUSTEREDNONCLUSTERED] INDEX nom_index ON nom_table( nom_colonne, nom_colonne&#8230; ) WITH options ON nom_groupe_de_fichier. Un index CLUSTERED contient les données de la table. Par conséquent, il ne peut y avoir qu&#8217;un seul index Clustered par table. En contrepartie, Microsoft met en garde contre l&#8217;utilisation de [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>La syntaxe d&rsquo;utilisation de CREATE INDEX est la suivante :</p>
<p>CREATE [UNIQUE] [CLUSTEREDNONCLUSTERED] INDEX nom_index ON nom_table<br />( nom_colonne, nom_colonne&#8230; ) WITH options ON nom_groupe_de_fichier.</p>
<p>Un index CLUSTERED contient les données de la table. Par conséquent, il ne peut y avoir qu&rsquo;un seul index Clustered par table. En contrepartie, Microsoft met en garde contre l&#8217;utilisation de cette structure quand les enregistrements sont de taille importante car on ne peut alors mettre que peu d&#8217;enregistrements dans un noeud de l&#8217;arbre, ce qui risque de faire perdre à l&#8217;index une partie de son efficacité.</p>
<p>Un index est performant pour la recherche sur<br />- une clef : SELECT * FROM Film WHERE Titre=&rsquo;Gladiator&rsquo;<br />- un intervalle : SELECT * FROM Film WHERE Annee BETWEEN 1999 AND 2001<br />- ou une partie de la clé : SELECT * FROM Film WHERE Titre LIKE &lsquo;G%&rsquo;</p>
<p>Les options :</p>
<p>PAD_INDEX : utilisé avec le paramètre FILL_FACTOR; indique qu&rsquo;il faut laisser de l&rsquo;espace dans les noeuds branches et pas seulement dans les noeuds feuilles.<br />FILL_FACTOR : spécifie le degre de remplissage de chaque noeud feuille; pourcentage compris entre 0 et 100. 0 est une valeur particulière, la gestion est laissée à sql server.<br />DROP_EXISTING : indique que si il existe deja un index portant ce nom, cet index sera supprimé puis recree avec la nouvelle définition.<br />ONLINE : commande de sql server 2005 enterprise , les tables sont accessibles en requete et modification durant les opérations d&rsquo;indexation.<br />SORT_IN_TEMPDB : par default, OFF, les résultats des tris sont calculés dans la base courante. Sur ON, les résultats des tris sont stockées dans TEMPDB.</p>
<p>exemple :</p>
<p>CREATE CLUSTERED INDEX item_index ON INVENTORY(item) WITH ( PAD_INDEX=ON,FILLFACTOR=50 )</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
