<?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>Optimisation et diagnostic SQL Server &#187; catalogue</title>
	<atom:link href="https://blog.developpez.com/babaluga/pcategory/catalogue/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/babaluga</link>
	<description>Articles et fragments de code pour l&#039;optimisation SQL Server</description>
	<lastBuildDate>Wed, 26 Mar 2014 09:30:39 +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>Modifier les colonnes TEXT en VARCHAR(MAX)</title>
		<link>https://blog.developpez.com/babaluga/p12518/t-sql/modifier-les-colonnes-text-en-varcharmax</link>
		<comments>https://blog.developpez.com/babaluga/p12518/t-sql/modifier-les-colonnes-text-en-varcharmax#comments</comments>
		<pubDate>Tue, 11 Mar 2014 12:03:31 +0000</pubDate>
		<dc:creator><![CDATA[rudib]]></dc:creator>
				<category><![CDATA[catalogue]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/babaluga/?p=54</guid>
		<description><![CDATA[Le type de données TEXT est déprécié depuis SQL Server 2005. Outre les problèmes de gestion dans le code et sa non compatibilité avec plusieurs fonctions de chaînes, et est gourmand en espace disque et ralentit les opérations de lecture et d&#8217;écriture, parce que le moteur de stockage doit créer une allocation spécifique aux LOB [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Le type de données TEXT est déprécié depuis SQL Server 2005. Outre les problèmes de gestion dans le code et sa non compatibilité avec plusieurs fonctions de chaînes, et est gourmand en espace disque et ralentit les opérations de lecture et d&rsquo;écriture, parce que le moteur de stockage doit créer une allocation spécifique aux LOB pour chaque ligne insérée.<br />
Le type qui le remplace s&rsquo;appelle VARCHAR(MAX), et l&rsquo;allocation dans la page ou en LOB se fait dynamiquement selon le contenu inséré dans la colonne. Dans la pratique, cela prend beaucoup moins d&rsquo;espace en base.</p>
<p>Voici un code se basant sur une vue de catalogue, pour générer les instructions ALTER TABLE pour convertir les types de données, et ensuite pour reconstruire les tables (à partir de SQL Server 2008). Vous pouvez au besoin modifier le code pour accommoder des colonnes NTEXT, et IMAGE (à remplacer par VARBINARY(MAX)) si vous en avez.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SELECT <br />
&nbsp; &nbsp; 'ALTER TABLE ['+TABLE_SCHEMA+'].['+TABLE_NAME+'] ALTER COLUMN ['+COLUMN_NAME+'] VARCHAR(MAX) '<br />
&nbsp; &nbsp; +CASE IS_NULLABLE WHEN 'YES' THEN 'NULL' ELSE 'NOT NULL' END + ';'<br />
FROM INFORMATION_SCHEMA.COLUMNS<br />
WHERE DATA_TYPE = 'text';<br />
<br />
SELECT <br />
&nbsp; &nbsp; 'ALTER TABLE ['+TABLE_SCHEMA+'].['+TABLE_NAME+'] REBUILD;'<br />
FROM INFORMATION_SCHEMA.COLUMNS<br />
WHERE DATA_TYPE = 'text'<br />
GROUP BY TABLE_SCHEMA, TABLE_NAME;</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Contraintes non trustées</title>
		<link>https://blog.developpez.com/babaluga/p12351/catalogue/contraintes-non-trustees</link>
		<comments>https://blog.developpez.com/babaluga/p12351/catalogue/contraintes-non-trustees#comments</comments>
		<pubDate>Thu, 21 Nov 2013 12:36:01 +0000</pubDate>
		<dc:creator><![CDATA[rudib]]></dc:creator>
				<category><![CDATA[catalogue]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/babaluga/?p=37</guid>
		<description><![CDATA[Une contrainte CHECK est marque comme étant digne de confiance si elle a été créée avec l&#8217;option WITH CHECK (valeur par défaut), c&#8217;est-à-dire qu&#8217;elle vérifie les données existantes dans la table à la création. Une contrainte marquée comme non digne de confiance ne pourra pas être utilisée par l&#8217;optimiseur pour éliminer certains cas dans la [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Une contrainte CHECK est marque comme étant digne de confiance si elle a été créée avec l&rsquo;option WITH CHECK (valeur par défaut), c&rsquo;est-à-dire qu&rsquo;elle vérifie les données existantes dans la table à la création. Une contrainte marquée comme non digne de confiance ne pourra pas être utilisée par l&rsquo;optimiseur pour éliminer certains cas dans la recherche. Cela vaut donc la peine de vérifier que vos contraintes sont dignes de confiance.<br />
Voici une requête qui liste toutes les contraintes CHECK de votre base de données qui ne sont pas dignes de confiance :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">SELECT <br />
&nbsp; &nbsp; OBJECT_NAME(parent_object_id) AS NomTable,<br />
&nbsp; &nbsp; name AS NomContrainte<br />
FROM sys.objects<br />
WHERE type_desc = 'CHECK_CONSTRAINT'<br />
AND OBJECTPROPERTY([object_id], 'CnstIsNotTrusted') = 1<br />
ORDER BY NomTable, NomContrainte;</div></div>
<p>Si vous voulez les rendre dignes de confiance, vous pouvez utiliser une instruction comme celle qui suit :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ALTER TABLE CDRRating WITH CHECK CHECK CONSTRAINT NomDeLaContrainte;<br />
ALTER TABLE CDRRating WITH CHECK CHECK CONSTRAINT ALL; -- pour toutes les contraintes de la table</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
