Utilisation d’une valeur bind (requête paramétrée)
Bon exemple: SELECT * FROM clients WHERE id =: v;
Select * from TT where nom=:v;
Select * from TT where nom=:v;
Mauvais exemple : “SELECT * FROM clients WHERE id = “ + clid;
k1, d7, d3, d6, d5
Traitement transactionnel → OLTP (On Line Transaction Processing)
On utilise des blocs de petites tailles et le temps de réponse doit être courtes.
Utiliser pour des requêtes à petites transactions (peu d’informations à traiter).
Un grand nombre d’accès.
Non, un segment peut contenir des tables ou des index mais pas les deux.
Non, il peut être placé à travers différentes extensions.
C’est un vecteur de modification atomique d’un bloc. On a l’ancienne et la nouvelle valeur qui a été modifiée et ceci pour chaque bloc modifié.
Non, il y a une tablespace spécifique pour le paramétrage et pour les données.
Le Result Cache mémorise les résultats des script SQL sous une forme déjà prête à l’utilisation.
Annexe: le Database buffer cache sauvegarde des blocs physiques. Mais si le résultat est grand, le serveur doit encore récupérer les infos sur différents blocs alors qu’avec le Result Cache on a tout (on ne tient pas compte des blocs). Par contre, en terme de redondonce, c’est le Database Buffer Cache qui est plus stable.
Le SPFILE est un fichier binaire. Il contient des valeurs pour des paramètres d’instance.
Il est modifié à chaud (par des commandes sous Oracle et non pas à la main par un éditeur de texte).
Le tablespace c’est l’unité de stockage d’Oracle.
Le tablespace s’étale sur un ou plusieurs fichiers de données qui sont des fichiers du système d’exploitation.
Les tablesspaces obligatoirement présent dans une base sont: les tablespaces SYSTEM (pour faire tourner l’instance) et SYSAUX (outils d’administration, maintenance).
Pour l’instance, le SID, système d’identification, c’est une variable d’environement (du système) sur laquelle tourne la base. ORACLE_SID
Si une seule instance, on n’a même pas besoin d’indiquer l’instance dans les la variables d’environnements. SID et ??? même nom
La base de donnée est identifiée par DB_NAME.DB_DOMAINE
Le fichier de contrôle contient les données nécessaires pour le lancement de la base. Il est conseillé d’avoir plusieurs copies en miroir sur différents support pour l’intégrité de la base. Peut être fait automatiquement si configuré.
C’est le DB_BLOCK_SIZE.
2, 4, 8, 16, 32 Ko
Il sert à garder des information sur les requête et le dictionnaire.
Library Cache, garder en mémoire l’analyse des dernières requêtes (attention, ne contient pas les résultats). Garde le contrôle de syntaxe par exemple.
Dictionnaty Cache, contient la structure de la DB (utile pour l’analyse des scripts, contrôle de la structure des tables par exemple).
Séquence 1234 1234 1534 (le résultat finale) Le nom de l’algorithme est Last Recently View
Les fichiers de données
le(s) fichier(s) de contrôle
les journaux.
On passe au groupe suivant.
Si tous les groupes sont pleins, on fait de l’écrasement des journaux circulaire (on écrase le 1er groupe pour réécrire les données).
Quand on commence à écraser, on peut faire de l’archivage des journaux.
Lorsque le segment est plein, on crée alors une nouvelle extension pour le segment. Si le fichier de données actuel est plein, alors on crée la nouvelle extension dans autre fichier de données.
“i” , à partir de la version 8, prise en compte d’internet principalement
“g”, à partir de la version 10, prise en compte de grid (cluster hétérogène, machine d’infrastructure différentes)
‘‘c” pour Cloud avec la version 12.
Oui, dans les 2 cas. Il n’aura pas la taille de bloc par défaut.
Il est possible mais il va falloir définir un Pool pour faire des entrées-sorties avec les tablespaces de blocs à 2 ko.
Il faut définir un autre buffer DB_2k_CACHE_SIZE.
On peut pas faire du clusters, il n’y a pas de cryptages, elle est limitée à 4 CPU (limite de montée en charge).
La licence standard est utilisé pour le développement principalement ou en exploitation limitée. Si déploiement, passer à la licence personnelle.
Non, il ne faut pas l’augmenter (on peut même le mettre à 0). Puisque les applications JAVA n’utilisent pas ce Pool. Celui-ci est utilsé dans le code interne de la base et non par les applications.
(PIEGE!!!! MOUHAHAHAHAHAHAHAHA test/exam?)
Le Roll Back permet de d’annuler des modifications d’une transaction qui n’a pas été validée (on utilise un vecteur avec les anciennces valeurs pour remettre les valeurs dans la base).
Le Roll Forward, ne s’exécute que suite à des problèmes techniques (après un redémarrage, les fichiers ne sont pas à jour. Il faut alors aller chercher dans les journaux. Les fichiers données ne sont pas forcément toujours à jour car ils sont lents d’accès comparé aux fichiers journaux.
Peuvent contenir des tables, index (clés primaires), informations d’annulation de transaction (coordination avec des journaux), des segments de travail (tri).