Olá desenvolvedores,
Divirtam-se assistindo o novo vídeo no InterSystems Developers YouTube:
SQL é uma linguagem padrão para armazenar, manipular e recuperar dados em bancos de dados relacionais.
Olá desenvolvedores,
Divirtam-se assistindo o novo vídeo no InterSystems Developers YouTube:
Olá membros da Comunidade de Desenvolvedores,
Por favor, dêem as boas-vindas ao novo vídeo no YouTube de Desenvolvedores InterSystems:
⏯ Consultas dez vezes mais rápidas com armazenamento em colunas@ Global Summit 2022
No vasto e variado mercado de banco de dados SQL, o InterSystems IRIS se destaca como uma plataforma que vai muito além do SQL, oferecendo uma experiência multimodelo otimizada e a compatibilidade com um rico conjunto de paradigmas de desenvolvimento. Em especial, o mecanismo Object-Relational avançado ajudou as organizações a usar a abordagem de desenvolvimento mais adequada para cada faceta das cargas de trabalho com muitos dados, por exemplo, fazendo a ingestão de dados por objetos e consultando-os simultaneamente por SQL.
Olá Desenvolvedores,
Veja como você pode conseguir um acesso relacional de alta performance utilizando o SQL para gerenciar dados em seus produtos InterSystems:
Bom dia a todos.
Preciso consultar informações das tabelas/classes que estejam em lock
Eu achei na documentação a classe %SYS.LockQuery mas no exemplo ela parece ser uma Class Query(não estou acostumado com esse conceito) e só consigo consumir os dados via Object Script usando um %ResultSet
Existe alguma forma de consumir essas informações diretamente via SQL ?
Grato por qualquer ajuda
Boa tarde à todos!
Preciso fazer uma chamada sql (utilizando JDBC) para executar uma procedure que retorna um objeto estruturado (Oracle Object) como parâmetro de saída.
Olá desenvolvedores!
Algumas vezes precisamos inserir ou fazer referência aos dados de classes persistentes diretamente através das globais.
E talvez muitos de vocês estejam esperando que a estrutura de dados da global com os registros seja:
^Sample.Person(Id)=$listbuild("",col1,col,2,...,coln).Este artigo é um aviso que nem sempre isso é verdade. Não espere que sempre seja assim!
Olá Desenvolvedores!
Como você provavelmente percebeu, no IRIS 2021 os nomes das globais são randômicos.
E, se você criar classes do IRIS classes com DDL e quiser se certificar qual global foi criada, você provavelmente gostaria de escolher seu nome.
E, de fato, você consegue fazê-lo.
Utilize WITH %CLASSPARAMETER DEFAULTGLOBAL='^GLobalName' na instrução CREATE Table para fazê-lo. Documentação. Veja o exemplo abaixo:
Oi, pessoal!
Preciso gerar um arquivo DDL a partir de uma classe .cls que já existe, a ideia é criar uma tabela espelho em SQL. É possível fazer essa exportação ou preciso fazer CREATE TABLE manualmente?
Recentemente, eu queria obter uma lista de todas as consultas em cache e seus textos. Veja como fazer isso.
Primeiro, crie um procedimento SQL retornando texto de consulta de cache a partir de um nome de rotina de consulta em cache:
Class test.CQ
{
/// SELECT test.CQ_GetText()
ClassMethod GetText(routine As %String) As %String [ CodeMode = expression, SqlProc ]
{
##class(%SQLCatalog).GetCachedQueryInfo(routine)
}
}SELECT Routine, test.CQ_GetText(Routine)
FROM %SQL_Manager.CachedQueryTree().png)
Uma VIEW em SQL é basicamente uma instrução SQL preparada.
Deve ser executado e montado como qualquer outra consulta SQL.
VIEW MATERIALIZADA significa que o conteúdo é coletado antes das mãos e pode ser recuperado com bastante rapidez.
Eu vi o conceito primeiro com meu concorrente favorito chamado O * e eles fizeram muito barulho sobre isso.
{ favorite: because I could win every benchmark against them
}
Oi pessoal!Aqui está como concedo acesso SQL do usuário a uma determinada classe / tabela:
GRANT SELECT, UPDATE ON Packacge_X.Table_Y TO UserZComo posso conceder acesso SQL de um determinado usuário a um schema inteiro?
Olá comunidade,
Dê as boas-vindas ao novo vídeo no InterSystems Developers YouTube:
Olá a todos,
Estou me perguntando se é possível obter os valores de si mesmo para executar uma consulta.
Eu quero criar uma consulta para encontrar um valor em uma classe %Persistent, mas cada uma usa valores diferentes.
Class Kurro.MyClass Extends %Persistent
{
/// Key of process
Property KeyProcess As %String(MAXLEN = "");
/// Specialist
Property CodeSpecialist As %String;
/// Provider
Property CodeProvider As %String;
/// Center
Property CodeCenter As %String;
/// Date
Property Date As %TimeStamp;
/// IdList
Property IdList As %String;
/// IdProcess
Property IdProcess As %String;
/// Duration
Property Duration As %String;
Query GetInfo(pObject AS Kurro.MyClass) As %SQLQuery(CONTAINID = 1, ROWSPEC = "IdList:%String,IdProcess:%String,Duration:%String")
{
SELECT IdList, IdProcess, Duration
FROM Kurro.MyClass
WHERE KeyProcess = :pObject.KeyProcess
AND CodeSpecialist = :pObject.CodeSpecialist
AND CodeProvider = :pObject.CodeProvider
AND CodeCenter = :pObject.CodeCenter
AND Date = :pObject.Date
}
}O mesmo serviço com a possibilidade de receber várias consultas SQL diferentes e sempre entregar o resultado independente de quantas colunas distintas tenham essas diferentes consultas. Aqui demonstro como pode ser possível montar esse tipo de serviço utilizando o Service Bus da Intersystems.
Vamos pensar em um painel real time onde iremos fornecer as informações de consumo de um material por região para o setor de compras e teremos as informações do nome do produto, fabricante e quantidade por exemplo.
Nos bons velhos tempos (tm), determinar o tamanho dos dados, fluxos e índices para uma classe / tabela era fácil - você apenas executava %GSIZE e verificava as globais D, S e I respectivamente.
No entanto, hoje em dia a fragmentação, os nomes globais otimizados e os índices em globais separados produzem a saída% GSIZE parecida com esta:
Global Size Display of /irissys/data/IRIS/mgr/irisshard/
1:35 PM Dec 02 2020
IRIS.Msg 1 IRIS.MsgNames 1 IRIS.SM.Shard 1
IS.DGoWeK.1 24359 IS.DGoWeK.2 3 IS.DGoWeK.3 2810
IS.DGoWeK.4 2542 IS.V0Zli.1 373 IS.V0Zli.2 2
IS.k22Ht.1 238028 IS.k22Ht.2 3 IS.k22Ht.3 25819
IS.k22Ht.4 7426 ISC.Src.Jrn 1 ROUTINE 1
oddBIND 1 oddCOM 1 oddDEF 1
oddDEP 1 oddEXT 1 oddEXTR 1
oddMAP 1 oddMETA 1 oddPKG 1
oddPROC 1 oddPROJECT 1 oddSQL 1
oddStudioDocument 1 oddStudioMenu 1 oddTSQL 1
oddXML 1 rBACKUP 1 rINC 1
rINCSAVE 1 rINDEX 1 rINDEXCLASS 1
rINDEXEXT 7 rINDEXSQL 1 rMAC 1
rMACSAVE 1 rMAP 1 rOBJ 1
TOTAL: 301403As consultas utilizando intervalo de datas estão muito lentas para você? O desempenho do SQL te desanima? Eu tenho um estranho truque que pode te ajudar! (Desenvolvedores de SQL odeiam isso!)*
Se você tiver uma classe que registra os timestamps quando os dados são adicionados, esses dados estarão em sequência com seus valores IDKEY - isto é, TimeStamp1 < TimeStamp2 se e somente se ID1 < ID2 para todos os IDs e valores de timestamps na tabela - então, você pode usar esse conhecimento para aumentar o desempenho de consultas para intervalos de timestamps. Considere a seguinte tabela:
Class User.TSOrder extends %Persistent
{
IRIS External Table é um projeto de código aberto da comunidade InterSystems, que permite usar arquivos armazenados no sistema de arquivos local e armazenamento de objetos em nuvem, como o AWS S3, como tabelas SQL. 
Ele pode ser encontrado no GitHub
Para instalar o External Table a partir do GitHub, use:
git clone https://github.com/antonum/IRIS-ExternalTable.git
iris session iris
USER>set sc = ##class(%SYSTEM.OBJ).LoadDir("Este é um exemplo de codificação funcionando no IRIS 2020.1 e no Caché 2018.1.3
Ele não será sincronizado com as novas versões
E também NÃO é atendido pelo Suporte da InterSystems!
Globais no Caché / Ensemble / IRIS são normalmente invisíveis ao acessar o SQL
Este exemplo mostra como contornar esse limite.
Desde o Caché 2017, o mecanismo SQL inclui um novo conjunto de estatísticas. Ele registra o número de vezes que uma consulta é executada e o tempo que leva para executá-la.
Esta é uma mina de ouro para qualquer pessoa que está monitorando e tentando otimizar o desempenho de uma aplicação que inclui muitas instruções SQL, mas que não é tão fácil de acessar os dados como algumas pessoas desejam.
É um prazer anunciar que o DBeaver suporta a plataforma de dados InterSystems IRIS nativamente desde a versão 7.2.4. Você não precisa realizar uma configuração manual mais, basta identificar o ícone do IRIS na lista de conexões.
.png)
Todos os campos necessários já vem preenchidos mas, não se esqueça de colocar seu usuário e senha !!!!
Por padrão o driver do InterSystems IRIS não é incluído na instalação do DBeaver.