Pesquisar

Annonce
· Nov 28

[Video] Query Optimization in Hybrid Databases

Hey Community!

We're happy to share a new video from our InterSystems Developers YouTube:

⏯  Query Optimization in Hybrid Databases @ Ready 2025

This presentation covers query optimization in hybrid databases that use a mix of row-based, columnar, and bitmap indexes. InterSystems Iris supports flexible storage and indexing, but choosing the best combination for performance poses challenges. In version 2025.2, the query optimizer has been enhanced to fully integrate columnar indexing into its cost-based model. This allows the engine to automatically combine different index types, such as using a bitmap index for low-cardinality filters and a columnar index for analytical conditions within the same query.

The result is significant performance gains, with some queries running up to three times faster and minimal need for manual tuning. Future improvements will expand the optimizer to handle more vector operations and continue refining cost-based decision-making.

Presenters:
🗣 Ismail Ben Atitallah, Principal Systems Developer, InterSystems
🗣 Boya Song, Senior Systems Developer, InterSystems

Enjoy watching, and subscribe for more videos! 👍

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Annonce
· Nov 28

NOVO: Programa de Acesso Antecipado para "Modelos Personalizados do IntegratedML" -- Implante seus modelos de aprendizado de máquina em Python diretamente em SQL

Temos o prazer de anunciar o Programa de Acesso Antecipado para Modelos Personalizados do IntegratedML, um novo e poderoso recurso que estará disponível no IRIS 2026.1!

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Question
· Nov 28

Punctually access specific nodes of an XML document

Hello!
I have the following XML document obtained through a string:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MainDocument xmlns="urn:hl7-org:v3">
<realmCode code="IT"/>
<title>kjbkjkjbkjb</title>
<effectiveTime value="20090905150716"/>
[.....other tags.....]
<versionNumber value="1"/>
<component>
<body>mhvjhjkvhj</body>
<component>
<section>content</section>
<ID>5</ID>
<title>Certificato</title>
<text/>
<entry>
<Id>5</Id>
[...other tags...]
</entry>
<entry>
<Id>6</Id>
[...other tags...]
</entry>
</component>
</component>
</ClinicalDocument>


I would like to have a way to obtain only the content of the <entry> tags (which can be multiple) without having to scan the whole xml document, since it would be inefficient because of its length. I would like to have an outcome similar to the one coming from EvaluateExpression() but, from my trials and examples found on the internet, it seems that this function can be used only when the tag contains just one value. Does anybody have any idea which might help?

Thank you in advance!

5 nouveaux commentaires
Discussion (5)3
Connectez-vous ou inscrivez-vous pour continuer
Question
· Nov 28

Y888 Game – Pakistan’s Fastest-Growing Real Money Casino Platform

The Y888 Game has rapidly emerged as one of Pakistan’s newest and most popular real-money earning platforms, especially for Android users who love playing slot games and want multiple ways to earn online. Designed specifically for slot enthusiasts, this app provides an exciting opportunity to enjoy casino-style entertainment while earning real cash from the comfort of home. After personally using this platform for an extended period, I can confidently say that the Y888 Game APK offers the full experience of a real casino—smooth gameplay, a secure payment system, and several earning opportunities that go beyond ordinary gaming apps.

For anyone searching for a reliable casino app that combines entertainment, slot games, and real financial rewards, the Y888 App is a perfect choice. It brings players a trusted and enjoyable earning environment, making it ideal for users who want to invest their time into something both fun and profitable.


Why is Y888 Gaining Popularity in Pakistan?

One of the biggest reasons behind the Y888 Game’s massive success is its huge and diverse gaming collection. Unlike other apps that limit players to only a few options, Y888 provides access to a wide range of casino experiences in one place. Whether you enjoy slots, card games, live casino sessions, or prediction-based games, this platform has something for everyone.

What makes it even more attractive is that the app is completely free to use. Players don’t need to spend anything to explore different game categories. Instead of downloading multiple apps for different casino experiences, Y888 combines everything into one powerful and user-friendly application, making it extremely convenient for users who enjoy playing various game types.


What is the Y888 Game?

The Y888 Game APK is one of Pakistan’s most trusted online casino gaming and earning applications. It allows players to enjoy their favorite casino games while earning real cash at the same time. The more time a user spends understanding a game and improving their skills, the more they can earn. Most players start noticing improvements in their strategies within a few days, and once the game patterns become clear, earning profits becomes much easier.

Downloading the latest version of the Y888 Game takes only one tap. The download button available at the top of the page always provides the newest and most secure version of the app. If users want to explore similar earning platforms, the JJ804 app is another recommended option—and its download links are also available on our site. Simply scroll, choose your desired app, and start playing.


Why Do People Love to Play Y888 Game?

Players in Pakistan love Y888 for several reasons, including:

✔️ Real earning opportunities with every game session
✔️ Huge variety of casino games available in one place
✔️ Free-to-play features without any initial investment
✔️ Smooth graphics and fast loading gameplay
✔️ Secure and instant withdrawals through trusted methods
✔️ Daily bonuses, signup rewards, and cashback that boost earnings
✔️ Beginner-friendly interface that even new players can understand easily

Y888 doesn’t just offer games—it provides an earning ecosystem where fun, strategy, and profit come together.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Nov 28 4m de lecture

Connexion de C# à InterSystems IRIS via ODBC

Pour les développeurs d'applications externes, notamment ceux utilisant des technologies comme C#, ODBC (Open Database Connectivity) est une passerelle standardisée essentielle vers toute base de données relationnelle, y compris InterSystems IRIS. Bien qu'InterSystems propose son propre fournisseur ADO.NET natif, le pilote ODBC reste souvent la solution la plus simple pour l'intégration avec les outils et frameworks de bases de données génériques.

Voici un guide pas à pas pour connecter votre application C# à une instance IRIS à l'aide du pilote ODBC, en mettant l'accent sur la chaîne de connexion sans DSN.

Étape 1 : Installation du pilote ODBC InterSystems IRIS

Le pilote ODBC InterSystems est installé par défaut lors de l'installation d'InterSystems IRIS sur une machine Windows.

  • Si IRIS est installé sur la même machine : le pilote est déjà présent.
  • Si IRIS est installé sur un serveur distant : vous devez télécharger et installer le package du pilote client ODBC autonome correspondant à votre système d’exploitation (Windows, Linux ou macOS) et à son architecture (32 bits ou 64 bits) depuis le site web de WRC si vous êtes client, ou en installant les composants clients et en copiant le pilote ODBC.

Une fois installé, vous pouvez vérifier sa présence dans l’outil Administrateur de sources de données ODBC sous Windows (recherchez le pilote InterSystems IRIS ODBC35).

Étape 2 : Définir la chaîne de connexion sans DSN

Au lieu de créer un nom de source de données (DSN) préconfiguré dans l’outil d’administration Windows, nous utiliserons une chaîne de connexion sans DSN. Cette méthode simplifie le déploiement, car votre application contient toutes les informations de connexion nécessaires.

Le format spécifie le nom du pilote et les paramètres du serveur :

Driver={InterSystems IRIS ODBC35};
server=127.0.0.1;
port=1972;
database=USER;
uid=_System

Remarque :

  • Le nom du pilote (InterSystems IRIS ODBC35 ou parfois InterSystems ODBC) doit correspondre exactement au nom enregistré dans votre administrateur de sources de données ODBC local.
  • Le port est celui du serveur IRIS (souvent 1972).
  • La base de données correspond à l’espace de noms cible dans InterSystems IRIS (par exemple, USER ou l’espace de noms personnalisé de votre application).
  • L’UID par défaut est _System et le mot de passe est SYS. Modifiez toujours ces valeurs par défaut en environnement de production.

Étape 3 : Implémenter la connexion en C#

Dans votre projet C#, vous devrez référencer l’espace de noms System.Data.Odbc pour utiliser le fournisseur ODBC générique .NET.

Voici un exemple minimal en C# qui établit une connexion, exécute une requête simple sur une table par défaut et affiche le résultat.

using System.Data;
using System.Data.Odbc;

public class IrisOdbcExample
{
    public static void Main()
    {
        // 1. Define the DSN-less connection string
        string connectionString =
            "DRIVER={InterSystems IRIS ODBC35};" +
            "Server=127.0.0.1;Port=1972;Database=USER;" +
            "UID=_System;PWD=SYS;";

        // 2. Define the SQL Query (Example: querying the default Sample.Person table)
        string sql = "SELECT ID, Name FROM Sample.Person WHERE ID < 5";

        using (OdbcConnection connection = new OdbcConnection(connectionString))
        {
            try
            {
                connection.Open();
                Console.WriteLine("Connection successful!");

                using (OdbcCommand command = new OdbcCommand(sql, connection))
                using (OdbcDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Console.WriteLine($"ID: {reader["ID"]}, Name: {reader["Name"]}");
                    }
                }
            }
            catch (OdbcException ex)
            {
                // 3. Handle specific ODBC errors (e.g., wrong password, port blocked)
                Console.WriteLine($"ODBC Error: {ex.Message}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"General Error: {ex.Message}");
            }
            // The connection is automatically closed at
            // the end of the Using block.
        }
    }
}

Étapes suivantes

Cette approche sans DSN offre une grande flexibilité et évite de surcharger la configuration côté client. Pour les applications C# hautes performances, vous pouvez envisager le fournisseur ADO.NET natif d'InterSystems. Toutefois, pour une intégration rapide et une compatibilité optimale avec les outils, une connexion ODBC reste une solution fiable.

❗ N'oubliez pas d'utiliser systématiquement des requêtes paramétrées en production afin de prévenir les vulnérabilités liées aux injections SQL.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer