Le Stockage des données
Documentation
- La DocumentationOracle recense les principaux livres de la doc Oracle.
- voir en particulier l'instruction SQL create table
- le schéma de la vue user_all_tables.
Les infos relatives au stockage des données
Autres vues
Préparation
- Récupérer l'archive tp-stockage.zip
Se connecter au SGBD en utilisant sqlplus (interface textuelle, de type ligne de commande)
- Windows: Ouvrir une invite de commande (dans Programme>Accessoires), puis aller dans le répertoire de travail.
- Linux: cd répertoire de travail
- sqlplus utilisateur/mot_de_passe@baseNN
Savoir créer et utiliser des scripts sql
- la commande @fichier sert à exécuter le script contenu dans fichier.sql
- La plupart des scripts sql proposés pour ce TME sont paramétrés :
- &n représente le n-ième argument de la ligne d'appel du script
Créer un nouvel espace de stockage espace1 pour un nouvel utilisateur etu1. En tant qu'utilisateur system, créer le tablespace nommé ESAPCE1 et l'utilisateur ETU1.
- Editer le fichier espace.sql pour ajuster le nom du répertoire oradata selon votre installation. Puis
- sqlplus system/baseNN@oracle
- SQL> @espace baseNN espace1
- SQL> @user etu1 (le mot de passe de l'utilisateur etu1 est etu1)
En tant qu'utilisateur etu1, créer les tables T1 et T2
- Editer et comprendre le contenu du fichier table.sql
- SQL> @table T1
- SQL> @table T2
- Ajouter 10000 nuplets dans T1 (l'attribut a2 a une taille de 4 caractères)
Exercices
Ex1 : Interrogation des vues du dictionnaire
*Exprimer en SQL les requêtes : R1: liste des segments du tablespace ESPACE1 R2: pour chaque table de l'utilisateur ETU1, donner le nom de son segment. R3: pour la table T1, donner la liste des extensions avec leur numéro de bloc. R4: pour la table T1, donner sa cardinalite, et le nombre de tuples chainés (vers un autre bloc).
Ex2 : Topographie de l'espace de stockage
Visualiser le contenu de l'espace, en affichant toutes les infos nécessaires pour représenter les extensions dans l'ordre où elles sont stockées sur le disque. Visualiser le contenu après chacune des modifications suivantes de la BD :
- Ajouter 10000 tuples dans T2
- Ajouter 20000 tuples dans T1
- Les extensions du segment contenant T1 sont elles contigües ? Expliquer pourquoi.
Ex3: Chaînage
- Modifier les 5000 premiers tuples de T1 pour remplacer a2 par une chaine de 100 caractères.
- Combien de tuples sont-ils chaînés ?
- Proposer une solution pour réduire le chainage.
Ex4 : Influence des paramètres PCT_FREE et PCT_USED
La valeur par défaut des paramètres est: pct_free=10% et pct_used=40%
- Recreer T1 avec une valeur PCT_FREE = 50%
- Ajouter 10000 nuplets dans T1 (l'attribut a2 a une taille de 4 caractères).
- Modifier les 5000 premiers tuples de T1 pour remplacer a2 par une chaine de 100 caractères.
- Pourquoi le nombre de tuples chaînés est il différent de celui de l'ex3 ?
- L'augmentation (resp. la diminution) de la valeur du paramètre PCT_USED a-t-elle un effet sur le stockage des tuples ?
Les questions suivantes sont facultatives
Ex5
- Dans quel bloc sont stockés les 2 tuples de T1 insérés en dernier ?
- Supprimer puis recrér les 2 dernier tuples de T1.Sont-ils stockés dans le même bloc ?
Ex6 : Espace libre
- Combien y a-t-il d'extensions libres dans le tablespace ESPACE1 ?
Visualiser l'espace libre dans espace1 apres chaque opération :
- Effacer tous les tuples de T2 (delete t2)
- Supprimer la table t2 (drop table t2)
- L'espace de stockage utilisé par T2 est il libéré, a quel moment ?
- Pour chaque tablespace, donner son taux de remplissage (compris entre 0 et 100%).
Ex7 : Taille d'une extension
- Toutes les extensions de T1 ont-elles la même taille ? Expliquer pourquoi.
- Comment est définie la taille d'une extension ?
Ex8 : Agrandissement d'un tablespace
Lors de la création du tablespace, quel parametre indique l'espace initial alloué sur le disque ? Mettre en évidence l'augmentation de la taille d'un tablespace. Mettre en évidence la fragmentation d'un tablespace en plusieurs zones de stockage non contigues sur le disque.