Un système de stockage global d'aspect plus industriel

Dans le premier article de cette série, nous avons étudié le modèle entité-attribut-valeur (EAV) dans les bases de données relationnelles, et nous avons examiné les avantages et les inconvénients du stockage de ces entités, attributs et valeurs dans des tables. Nous avons appris que, malgré les avantages de cette approche en termes de flexibilité, elle présente de réels inconvénients, notamment une inadéquation fondamentale entre la structure logique des données et leur stockage physique, qui entraîne diverses difficultés.

Pour résoudre ces problèmes, nous avons décidé de voir si l'utilisation de globales - qui sont optimisées pour le stockage d'informations hiérarchiques - serait efficace pour les tâches que l'approche EAV traite habituellement.

Dans la Partie 1, nous avons créé un catalogue pour une boutique en ligne, d'abord en utilisant des tables, puis en utilisant une seule globale. Maintenant, essayons d'implémenter la même structure pour quelques globales.

Dans la première globale, ^catalog, nous allons stocker la structure du répertoire. Dans la deuxième globale, ^good, nous allons stocker les marchandises. Et dans la globale ^index, nous allons stocker les index. Puisque nos propriétés sont liées à un catalogue hiérarchique, nous ne créerons pas de globale séparée pour elles.

Avec cette approche, pour chaque entité (à l'exception des propriétés), nous avons une globale séparée, ce qui est bon du point de vue de la logique. Voici la structure du catalogue global :

2 0
0 220

Rubrique FAQ InterSystems

Vous pouvez voir l'espace disponible libre pour la base de données à l'aide du bouton radio « Vue de l'espace libre » dans le portail de gestion : Exploitation du système > Bases de données.

Et il peut être obtenu par programmation par la requête FreeSpace de la classe système SYS.Database.

2 0
0 36

Étant donné que SELECT ... FOR UPDATE est implémenté dans de nombreux RDBMS en tant que méthode d'acquisition de lock de ligne explicite, vous utilisez probablement cette fonctionnalité dans de nombreux cas.

Cette syntaxe n'entraîne pas d'erreur dans les produits InterSystems, mais elle n'acquiert pas les locks de ligne attendus.

Cet article vous montrera comment obtenir la même fonctionnalité.

1 0
0 98

pour démonter/monter une base de données, utilisez les méthodes Dismount() et Mount() dans la classe SYS.Database disponible dans l'espace de noms %SYS.
NB : l'ID de la base de données est le nom du chemin absolu de son répertoire.

Vous trouverez quelques exemples de démontage/montage et de méthodes contrôlant si une base de données est montée (Mounted=1) ou non (Mounted=0), ou affichant rapidement tous les attributs d'une base de données (via zwrite)

0 0
0 27

InterSystems FAQ rubric

Un outil (l'utilitaire ^GLOBUFF) est disponible pour vérifier l'utilisation du cache de la base de données pour chaque variable globale.

Vous pouvez exécuter l'utilitaire directement ou par programme dans l'espace de noms %SYS.

Voici comment exécuter l'utilitaire directement :

1 0
0 17

La cause de cette erreur est que la ressource locked est déjà locked par un autre processus dans l'application et que le lock n'est pas libéré pour une raison quelconque.

S'il n'y a aucun signe que d'autres processus avec le lock, il est possible que la table de locks manque d'espace libre. Dans ce cas, le message LOCK TABLE FULL est envoyé au Message Log

1 0
0 60
Article
· Nov 17, 2023 3m de lecture
Comment cacher le programme source

Rubrique Questions fréquentes (FAQ) d'InterSystems

Pour les routines (*.mac)

Vous pouvez masquer la source en exportant/important uniquement le fichier *.obj généré après la compilation du programme source.

L'exemple d'exécution de la commande spécifie EX1Sample.obj et EX2Sample.obj, qui sont générés par la compilation de EX1Sample.mac et EX2Sample.mac, comme cibles d'exportation et les exporte dans le deuxième fichier argument.

Après avoir changé d'espace de noms, j'utilise le fichier XML exporté pour effectuer l'importation.

3 0
0 37

Cette publication est le résultat direct d'une collaboration avec un client d'InterSystems qui est venu me consulter pour le problème suivant :

SELECT COUNT(*) FROM MyCustomTable

Cela prend 0,005 secondes, pour un total de 2300 lignes. Cependant :

4 0
1 69

InterSystems FAQ rubric

Sous Linux, utilisez la commande iris pour exécuter une routine ou une méthode à partir d'un shell et obtenir la valeur de retour.

Pour plus d'informations, veuillez consulter le document "About Instance Connections".

Voici un exemple de commande.

0 0
0 60

Les champs peuvent être obtenu à l'aide du schéma INFORMATION_SCHEMA.

INFORMATION_SCHEMA est un schéma système et n'apparaît pas dans le menu SQL du Management Portal par défaut.

La méthode d'affichage est la suivante.

  1. Ouvrez le Management Portal → System Explorer → SQL
  2. Cochez "System" sur le côté gauche du menu déroulant du schéma.
  3. Sélectionnez INFORMATION_SCHEMA dans le menu déroulant du schéma.

1 0
0 361

Introduction

Depuis qu'InterSystems a récemment annoncé l'arrêt du support d'InterSystems Studio à partir de la version 2023.2 au profit du développement exclusif d'extensions pour l'IDE Visual Studio Code (VSC), estimant que ce dernier offre une expérience supérieure par rapport à Studio, beaucoup d'entre nous, développeurs, avons changé ou commencé à utiliser VSC. Beaucoup se sont peut-être demandé comment ouvrir le Terminal pour effectuer des opérations, car VSC n'a pas de panneau de sortie comme Studio, ni de fonctionnalité intégrée pour ouvrir le terminal IRIS, sauf en téléchargeant les plugins développés par InterSystems.

2 0
0 45

InterSystems FAQ rubric

Pour supprimer les produits InterSystems installés sur votre système Windows, utilisez Ajouter ou supprimer des programmes dans le Panneau de configuration (dans Windows 10, sélectionnez Apps dans les Paramètres Windows).

Comme nous allons apporter des modifications au système, vous devrez vous connecter en tant qu'utilisateur disposant de privilèges d'administrateur.

1) Connectez-vous au système en tant qu'administrateur.

1 0
0 17

Vous connaissez plusieurs langues et souhaitez partager vos connaissances avec des utilisateurs de différentes régions du monde qui ne parlent pas français ?

C'est maintenant à vous de briller ! 🤩

Avec notre communauté de développeurs, c'est facile de lier votre article original et sa traduction dans une autre langue (ou même de demander une traduction).

Parlons donc de la création de votre propre traduction :

1 0
0 49

InterSystems FAQ rubric

Si vous redémarrez le système d'exploitation après avoir modifié le nom de la machine sans arrêter InterSystems IRIS (ci-après dénommé IRIS), un problème se produit lorsque IRIS ne peut pas démarrer.

Pour commencer supprimer le fichier <installation directory>\mgr\iris.ids .

iris.ids stocke le nom du nœud démarré et les informations sur la mémoire partagée (ID de mémoire partagée). Il est créé au démarrage d'IRIS et supprimé à l'arrêt. (iris stop ou iris force). Si vous arrêtez (redémarrez) le système d'exploitation sans arrêter IRIS, iris.ids, qui contient les informations de démarrage d'IRIS, peut rester.

1 0
0 29

Si vous êtes sur le point d'apprendre InterSystems ObjectScript, nous rendons la décision beaucoup plus facile.

Nous venons de mettre à jour le parcours d'apprentissage " Premiers pas avec InterSystems ObjectScript " avec 3 nouvelles vidéos de 5 minutes - et un exercice de synthèse pour vous aider à rassembler tout ce que vous apprendrez.

🤝 Obtenez une introduction à InterSystems ObjectScript

🤿 Plongez plus profondément dans les commandes et les fonctions

🤔 Comprendre les types de données et les variables

👨‍💻 Créer une définition de classe

Faites tout cela dans notre parcours d'apprentissage mis à jour, Premiers pas avec InterSystems ObjectScript.

1 0
0 35

InterSystems FAQ rubric

Si plusieurs produits InterSystems sont installés sur le même système, la dernière version du pilote ODBC InterSystems parmi les produits installés restera enregistrée dans le gestionnaire de pilotes.

Vous pouvez passer à n'importe quel pilote en modifiant l'entrée de la registry ci-dessous.

Veuillez noter que l'exécution de RegFiles.bat ne modifie pas le pilote ODBC.

L'entrée de la registry est la suivante.

1 0
0 20

Salut la communauté,

Souhaitez-vous bénéficier de soutien, discuter d'une fonctionnalité intéressante, faire une annonce ou partager vos connaissances ? Dans cet article, nous allons vous expliquer comment faire tout cela.

Pour faciliter la navigation dans ce "mode d'emploi", suivez simplement le contenu :

Instructions générales

Pour commencer, il faut cliquer sur le bouton "Nouveau message" dans le menu principal du site de la Communauté des développeurs :

Ensuite, vous verrez apparaître l'éditeur qui vous donnera le choix de créer une Question, une Annonce, un Article, ou une Discussion. Les différents types de messages ont leurs propres ensembles de champs obligatoires et facultatifs.

0 0
0 38

InterSystems FAQ rubric

Si une relation est définie et qu'il existe un grand nombre de n dans un rapport 1:n, une grande quantité de mémoire peut être consommée en raison du traitement séquentiel de la relation.

Après avoir référencé un objet à plusieurs côtés dans un programme et l'avoir fait pivoter en interne, le simple fait de libérer la variable contenant l'OREF (en la supprimant, en définissant une autre valeur, etc.) ne libérera pas les objets liés ni l'objet de relation.

1 0
0 18

InterSystems FAQ rubric

Les mappages globaux peuvent être enregistrés à l'aide de la classe système Config.MapGlobals.

La méthode pour mapper globalement ^Sample.PersonD dans une base de données SAMPLES autre que la base de données par défaut de l'espace de noms USER est la suivante (exemple exécuté dans un terminal).

3 0
0 27