New post

查找

Article
· Jan 12 4m read

Recursos de performance SQL

Há três coisas mais importantes para qualquer converrsa sobre performance SQL: Índices, TuneTable e Plano de Consulta.  Os PDFs anexos incluem apresentações históricas sobre esses tópicos que cobrem os fundamentos desses 3 itens em um só lugar.  Nossa documentação fornece mais detalhes sobre esses e outros tópicos de desempenho do SQL nos links abaixo.  As opções de eLearning reforçam vários desses tópicos.  Além disso, há vários artigos da Comunidade de Desenvolvedores que abordam o desempenho do SQL, e os links relevantes também estão listados.

Há uma quantidade considerável de repetição nas informações listadas abaixo. Os aspectos mais importantes do desempenho do SQL a serem considerados são:

  1. Os tipos de índices disponíveis
  2. O uso de um tipo de índice em vez de outro
  3. As informações que o TuneTable coleta para uma tabela e o que isso significa para o Otimizador
  4. Como ler um Plano de Execução para melhor entender se uma consulta é boa ou ruim

Abaixo estão alguns recursos gerais para aprender mais sobre o Desempenho do SQL InterSystems IRIS:

  1. Worldwide Response Center (WRC) no 617-621-0700 O WRC está aqui para você. Eles podem abordar o desempenho do SQL com você em qualquer nível que você se sinta confortável.  Existem vários bons profissionais de Suporte de SQL e você também pode entrar em contato com Brendan Bannon, Gerente de Suporte, para ser conectado a um consultor adequado.
  2. Documentação online da InterSystems
    1. Primeira Visão Geral: InterSystems SQL: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_sqlbasics
    2. Primeiros passos: Otimizando o desempenho do SQL com produtos InterSystems: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AFL_sqlqueryopt
    3. Guia de otimização do SQL InterSystems: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GSQLOPT  
  3. InterSystems eLearning
    1. Guia de recursos - Aprenda Caché SQL: Performance: https://learning.intersystems.com/enrol/index.php?id=255
    2. Guia de recursos - Aprenda Caché SQL: Design e Execuçãohttps://learning.intersystems.com/enrol/index.php?id=256
    3. Otimizando SQL Queries:  https://learning.intersystems.com/course/view.php?id=707
    4. Academia:  Otimizando SQL Performance:  https://learning.intersystems.com/course/view.php?id=80
    5. Otimizando suas SQL Queries:  https://learning.intersystems.com/course/view.php?id=1013  
  4. Comunidade de Desenvolvedores InterSystems
    1. O Único Truque de Desempenho de Consulta que Você PRECISA Conhecer? Tune Table! https://community.intersystems.com/post/one-query-performance-trick-you-need-know-tune-table
    2. Escalabilidade Horizontal com InterSystems IRIShttps://community.intersystems.com/post/horizontal-scalability-intersystems-iris
    3. Introdução à Seletividade de Valores Atípicos: https://community.intersystems.com/post/introduction-outlier-selectivity
    4. Melhorando o Desempenho de Consultas SQL para Datas: https://community.intersystems.com/post/improve-sql-performance-date-range-queries
    5. Melhorando o Desempenho de Consultas SQL para Datas, DE NOVO!: https://community.intersystems.com/post/improve-sql-performance-date-queries-again
    6. Criando um Tipo de Índice Personalizado no Caché https://community.intersystems.com/post/creating-custom-index-type-cach%C3%A9
    7. Globais São Espadas Mágicas para Gerenciar Dados. Parte 1:https://community.intersystems.com/post/globals-are-magic-swords-managing-data-part-1
    8. Globais – Espadas Mágicas para Armazenar Dados. Árvores. Parte 2:https://community.intersystems.com/post/globals-magic-swords-storing-data-trees-part-2
    9. Globais – Espadas Mágicas para Armazenar Dados. Vetores Esparsos. Parte 3:https://community.intersystems.com/post/globals-magic-swords-storing-data-sparse-arrays-part-3
    10. Busca de Texto Livre: O Método de Buscar em Seus Campos de Texto Que os Desenvolvedores SQL Estão Escondendo de Você!*https://community.intersystems.com/post/free-text-search-way-search-your-text-fields-sql-developers-are-hiding-you
    11. Indexação de Atributos Não Atômicos:  https://community.intersystems.com/post/indexing-non-atomic-attributes
    12. Índice SQL para elementos de propriedade de array:  https://community.intersystems.com/post/sql-index-array-property-elements  
  5. PowerPoints from prior years

Apresentações acompanhantes são mais antigas, mas fornecem material sólido. A maioria das informações deve ser aplicável ao InterSystems IRIS, embora seja recomendável verificar com a documentação atual para confirmar. Todos os seguintes podem ser encontrados em formato PDF anexado a este artigo:

    1. Introdução à Indexação
    2. Otimizando o Desempenho SQL (2015)
    3. Dica de Consulta %PARALLEL(2016)
    4. Planos Congelados e Consultas Paralelas(2017)
    5. Plano de Exibição para COS Gerados (2013)
    6. Programação com SQL(2006)

(Crédito pela autoria deste artigo vai para Brendan Bannon, com assistência de edição de Cliff Mason e Kyle Baxter)

Discussion (0)1
Log in or sign up to continue
Question
· Jan 12

InterSystems Response Content-Length

Hello, 
In short, I am trying to get the Content-Length of my response, 

We have a CSP application, when we get a new request we begin to process it, throughout the app we WRITE to the response in different places, 
now when the response is about to be sent back to the client - we would like to know its Content-Length (in the RESPONSE HEADERS). 
So it comes down to two questions:
1. How can we access the Content-Length of our response?

2. In case we CAN'T - Where in the broker.cls/page/base classes can I observe the moment we actually write the response itself and attach its headers?

Thank you!

1 Comment
Discussion (1)2
Log in or sign up to continue
Announcement
· Jan 10

[Video] Leveraging Automation Tools for Deploying InterSystems IRIS Applications

Hi Community,

Enjoy the new video on InterSystems Developers YouTube:

⏯ Leveraging Automation Tools for Deploying InterSystems IRIS Applications @ Global Summit 2024

Automating configuration management, application deployment, and routine tasks reduces errors and saves time. This session highlights typical InterSystems IRIS system configuration and deployment tasks and how open-source tools can automate them. Ansible will be used as the primary example, and we will show you how to mix and match tools to make your InterSystems IRIS application deployments successful.  

 Presenters
🗣 @Murray Oldfield, Principal Technology Architect, InterSystems
🗣 @Mark Bolinsky, Chief Technology Architect, InterSystems

Watch now and let us know what you think — happy viewing! 👍

Discussion (0)1
Log in or sign up to continue
Article
· Jan 10 1m read

Remover classes deletadas após importação

Quando você implanta código de um repositório, a deleção de classes (arquivos) pode não ser refletida pelo seu sistema CICD.

Aqui está um simples código para automaticamente deletar todas as classes em um pacote específico que não foi importado; Ele pode ser facilmente ajustado para uma variedade de tarefas adjuntas:

set packages = "USER.*,MyCustomPackage.*"
set dir = "C:\InterSystems\src\"
set sc = $SYSTEM.OBJ.LoadDir(dir,"ck", .err, 1, .loaded)
set sc = $SYSTEM.OBJ.Delete(packages _ ",'" _ $LTS($LI($LFS(loaded_",",".cls,"), 1, *-1), ",'"),, .err2)

O primeiro comando compila classes e também retorna uma lista de classes carregadas. O segundo comando deleta todas as classes de pacotes específicos, com exceção às classes carregadas anteriormente a ele.

Discussion (0)1
Log in or sign up to continue
Question
· Jan 10

DTL Transformation output: ordering of XML nodes

We are using a DTL transformation to take HL7 and transform into custom XML. But the nodes in the resulting XML are appearing out of sequence - and therefore failing validation against the schema.

The XSD schema for the XML looks fine when imported into Ensemble: root node in the XSD looks like this:

And shows in Ensemble like this:

The transformation looks like this, and we can see the text from the trace elements at lines 5, 12 and 19 appear in the correct order in the event log:

HOWEVER, the resulting XML has the <allergies> nodes before the <patientNotes> nodes....:

Any ideas about why this is happening, and how we can ensure nodes are generated in the correct order?

5 Comments
Discussion (5)2
Log in or sign up to continue