Nova postagem

查找

Pergunta
· 19 hr atrás

web applications definitions syncing between primary and backup nodes

hey everyone,

we are new to InterSystems health share, we are running health connect in a cluster with primary, backup and dr nodes.

we kept noticing that web applications definitions aren't showing in the backup or dr node.

is that normail? would they show up after failover to backup node or cutover to dr node?

 

thanks

Discussão (0)2
Entre ou crie uma conta para continuar
Artigo
· 21 hr atrás 4min de leitura

Response times when using Dynamic and Embedded SQL

When working with InterSystems IRIS, database developers and architects often face a critical decision: whether to use Dynamic SQL or Embedded SQL for querying and updating data. Both methods have their unique strengths and use cases, but understanding their performance implications is essential to making the right choice. Response time, a key metric in evaluating application performance, can vary significantly depending on the SQL approach used. Dynamic SQL offers flexibility, as queries can be constructed and executed at runtime, making it ideal for scenarios with unpredictable or highly variable query needs. Conversely, Embedded SQL emphasizes stability and efficiency by integrating SQL code directly into application logic, offering optimized response times for predefined query patterns.

In this article, I will explore the response times when using these two types of SQL and how they depend on different class structures and usage of parameters. So to do this, I'm going to use the following classes from the diagram:

To test the times, I created the following numbers of objects for each class:

  • Patient - 50M
  • Visit - 150M
  • Doctor - 500K
  • Address - 50M

This way, I expected to see some reasonable time for running queries and to see the differences between executing Embedded SQL and Dynamic SQL. The only index that I added was the one-many automatic index for the Doctor-Visit relationship.

So let's look at the queries that I'm going to run, and then at the duration of execution:

  1. select count(*) from Hospital.Address
  2. select count(*) from Hospital.Address where State = :param
  3. select count(*) from Hospital.Patient left join Hospital.Address on p.address = a.id
  4. select count(*) from Hospital.Patient left join Hospital.Address on p.address = a.id where a.State = :param
  5. select count(a.Address->State) from Hospital.Patient a
  6. select count(*) from Hospital.Patient where p.Address->State = :param
  7. select count(p.Visit->VisitDate) from Hospital.Patient p
  8. select count(*) from Hospital.Patient where p.Visit->VisitDate > :param
  9. select count(v.Patient->Name) from Hospital.Visit v
  10. select count(*) from Hospital.Visit where v.Patient->Name %startswith :param
  11. select count(v.Patient->Address->State) from Hospital.Visit v
  12. select count(*) from Hospital.Visit where v.Patient->Address->State = :param
  13. select count(v.Doctor->Name) from Hospital.Visit v
  14. select count(*) from Hospital.Visit where v.Doctor->Name %startswith :param
  15. select count(*) into :p from Hospital.Visit where v.Doctor->Name %startswith :param and v.Patient->Name %startswith :param
  16. select count(*) into :p from Hospital.Visit where v.Doctor->Name %startswith :param and v.Patient->Name %startswith :param and v.Patient->Address->State = :param1

Obviously, the above is the syntax for Embedded SQL (because there are named parameters). For Dynamic SQL, the queries are almost the same, but instead of named parameters, I have unnamed ones 😉 For example, for the last one, I have the following query:

select count(*) from Hospital.Visit v where v.Doctor->Name %startswith ? and v.Patient->Name %startswith ? and v.Patient->Address->State = ?

Now let's look at the results:

No of query Embedded SQL (sec) Dynamic SQL (sec)
1 49 12
2 3 3
3 32 26
4 47 46
5 48 46
6 47 46
7 1767 1806
8 1768 1841
9 31 26
10 83 81
11 41 45
12 73 71
13 23 26
14 1 1
15 2 2
16 3 3

We can see one colossal outlier, which is the first query. The Embedded SQL took a lot more time to execute than Dynamic SQL. Running the same queries several times gave me more or less the same result. So it is what it is. 

In general, we can see that parent-children relationship is a lot slower from the side of the children property, even though all the data of Patient and Visit is stored in the Patient global. The index saved the day for the one-many relationship, and the execution time was considerably shorter. All in all, the response time is mostly similar and differs by less than 10%; sometimes, it is the same. Of course, I used simple queries that didn't take too long to prepare, so this stage could almost be ignored.

3 novos comentários
Discussão (3)5
Entre ou crie uma conta para continuar
Anúncio
· Abr. 25

Programa de Acesso Antecipado: Melhorias em OAuth2

O InterSystems IRIS 2025.2.0 apresenta vários recursos para melhorar a experiência do usuário na configuração do OAuth2.

- OAuth2 agora é um tipo de autenticação nativa e pode ser facilmente habilitado para seus serviços e aplicativos web. Anteriormente, o OAuth2 era um tipo de autenticação delegada.

- Agora você pode criar servidores de recursos com a nova classe OAuth2.ResourceServer, que simplifica significativamente a configuração do servidor de recursos. Anteriormente, os servidores de recursos eram instâncias de OAuth2.Client.

- A classe OAuth2.ResourceServer fornece um autenticador de exemplo para determinar permissões de usuário que, para configurações simples, não requer código personalizado (anteriormente, isso exigia uma implementação ZAUTHENTICATE personalizada). Este autenticador simples pode ser estendido e personalizado para se adequar ao seu ambiente. O OAuth2.ResourceServer suporta múltiplos públicos.

- Agora você pode usar JDBC e ODBC para autenticar no InterSystems IRIS com tokens de acesso.

Estamos interessados ​​em seu feedback sobre essas novas mudanças e se elas funcionam conforme o esperado.

Você pode baixar o software e a nova documentação para esses novos recursos usando este link: https://evaluation.intersystems.com/Eval/early-access/OAuth2

Para feedback, use este endereço como comunicação principal acessando a página do EAP e selecionando o botão de feedback à direita.

Discussão (0)1
Entre ou crie uma conta para continuar
Artigo
· Abr. 25 2min de leitura

Configuración de la cuenta de servicio de Windows

Recientemente ayudé a investigar un problema en una instalación que surgió después de que actualizaran su instancia de Caché en Windows de la versión 2015.1 a la 2017.1. Una sesión de terminal iniciada desde el icono del cubo del escritorio del servidor no podía ejecutar comandos a nivel del sistema operativo utilizando la función $ZF(-1). Por ejemplo, al tratar de lanzar  el comando "REM" (que no tiene ningún efecto) de la siguiente manera

write $zf(-1,"rem")

devolvía -1, lo que indicaba que el comando de Windows no se podía ejecutar.

Resultó que el servicio original de Caché 2015.1 se estaba ejecutando bajo una cuenta específica de Windows (en lugar de bajo LocalSystem), lo cual es una práctica común para permitir que los procesos en segundo plano accedan a recursos compartidos UNC. De hecho, al instalar con seguridad Normal o Restringida, se solicita que introduzcáis las credenciales de una cuenta de Windows para ejecutar el servicio.

Al actualizar a la versión 2017.1, pasaron por alto la información que se encuentra en esta página, donde se explica por qué se debe usar cinstall.exe siempre que se configure la cuenta del servicio:

<installdir>\bin\cinstall setserviceusername <InstanceName> <username> <password>

Resultó que, aunque no estaban cambiando la cuenta bajo la cual se ejecutaba la instancia actualizada, aún así necesitaban usar este comando para otorgar a la cuenta los permisos necesarios.

Comparto esta información aquí por si puede ayudar a alguien en el futuro.

Discussão (0)1
Entre ou crie uma conta para continuar
Discussão
· Abr. 24

Best Energy Healers in India - Sunaina Aggarwal

 

Sunaina Aggarwal, an experienced energy healing consultant, welcomes you to El Healing Centre in Delhi, where she offers transformative healing modalities such as Pranic Healing, Reiki, and Access Bars. Through personalized sessions and specialized courses, she helps individuals restore balance, find inner peace, and enhance overall well-being. Sunaina’s holistic approach addresses emotional, mental, and physical concerns, creating a nurturing space for healing and growth. Whether you seek stress relief, energy alignment, or personal transformation, her expertise and compassionate guidance support your journey toward wellness. Discover the power of energy healing with Sunaina at El Healing Centre.

http://www.sunainaaggarwal.com/best-access-facelift-in-gurgaon.html

Discussão (0)1
Entre ou crie uma conta para continuar