Introduction
Depuis la version 10 d'Oracle, une corbeille bien pratique permet aux développeurs maladroits de récupérer une table qu'ils auraient malencontreusement supprimée. Je vous renvoie à mon article sur le sujet.
Le problème, c'est que la suppression devient alors logique (et pas physique) : l'objet (et ses blocs alloués) ne disparaît pas, mais est juste renommé (les fameux objets BIN$%==$0).
La base de donnée prend donc de l'embonpoint... une couche de gras qu'il
Problématique
Sous Oracle, lorsque l'on crée une table avec une colonne de type chaîne de caractères, on spécifie généralement VARCHAR2(n)... mais n quoi ? en fait, par défaut, Oracle crée un champ de n BYTES... ce qui ne cause pas vraiment de soucis avec des jeux de caractères codés sur 1 byte, mais qui devient problématique avec de l'unicode (1 à 4 bytes/caractère) et une langue, comme le français, faisant la part belle aux accentués.
Au niveau de la création du champ,
Historique
Architecturalement parlant, une instance MS-SQL gère plusieurs bases de données.
C'est le cas de la plupart des moteurs SGBDR, à l'exception notable de Oracle.
Le modèle de Microsoft SQL Server est issu de l'architecture Sybase et date de ... 1986...
Reste donc toujours cette épine dans le pied des DBA lors de la restauration d'une base de données sur une autre instance, ou lors de la gestion de base AlwaysOn... la synchronisation des logins (dépendants
Problématique
Oracle souffre d'une grosse faiblesse fonctionnelle au niveau des permissions DDL (Data Definition Language) que l'on peut donner.
- Il est possible de donner des droits de créer des objets à un utilisateur donné (user) dans son propre schéma (owner) avec les droits spécifiques CREATE TABLE, CREATE PROCEDURE, ... ou des droits plus génériques de type RESOURCE. Dans ce cas, l'utilisateur ne peut influer que sur SON propre schéma
- Si l'on souhaite qu'un utilisateur
Introduction
Est-ce aussi trivial que cela de demander à son DBA si la base est pleine ou non ?
Dans mon organisation, nous gérons des centaines d’applications hétérogènes dans de nombreuses bases. Nous travaillons donc par affinité de schéma (en attendant qu'Oracle redevienne raisonnable et passe son modèle multitenant dans sa version de base).
Nous avons donc quelques couches
- un schéma est rattaché à un tablespace
- un tablespace peut avoir plusieurs