Ayant travaillé avec SQL Server pendant longtemps, je suis habitué à penser que la table en cluster (table avec index clusterisé) est généralement un meilleur choix que la table tas. Maintenant, je travaille aussi avec Oracle et je ne comprends pas vraiment pourquoi leurs tables sont en tas par défaut. De mon expérience, je peux dire qu'il y a un nombre limité de cas où les tables devraient être tas (encore une fois, j'ai surtout traité avec SQLServer). Est-ce qu'Oracle a une bonne raison de "forcer" (en forçant je veux dire que CREATE TABLE
sans spécifier organization index
crée un segment de mémoire contrairement à SQLServer qui crée par défaut une table en cluster) pour utiliser les tables de segments de mémoire?Tables IOT vs Heap dans Oracle
[Mise à jour]
des éclaircissements sur SQLServer - je aurais pu mal utilisé "par défaut" pour décrire le comportement SQL Server; Je suis conscient qu'il crée un index clusterisé si la clé primaire est spécifiée dans CREATE TABLE
. Mon point ici est que je ne dois pas spécifier PK est en cluster.
[/ Mise à jour]
En outre, il y a beaucoup de bons articles sur les tables contre des tas en cluster SQL Server, et je me demande dans quelle mesure il peut être appliqué à Oracle.
Toute information est grandement appréciée.
Merci.
SQL Server ne crée pas de table avec un index clusterisé par défaut. Une table sera stockée physiquement en tant que HEAP, sauf si un index cluster est défini dans l'instruction create table. (Note: Par défaut, une clé primaire sera implémentée en tant qu'index groupé sur cette table, sauf indication contraire explicite.) –
Je ne comprends pas comment cela contredit ce que j'ai dit dans la section mise à jour ... 'CREATE TABLE table1 (id int not null identité (1,1) PRIMARY KEY) 'crée un index cluster sur' id' sauf si je spécifie qu'il n'est pas en cluster. N'est-ce pas un comportement par défaut? – a1ex07