Banco de Dados SQL - Performace

Bom dia, estou na tentativa de implementação de um banco de dados em SQL, porém estou com dificuldades de conseguir implementar de uma forma que não se prejudique a performace do programa. Meu driver de comunicação possui divisões das TAGs por BlockElement, habilitei a propriedade EnableDriverEvent destes, e no evento OnTagRead do driver implementei uma função recursiva, coma a ajuda do suporte técnico da Elipse, e dentro desta implementei uma contagem do valor total dos TAGs que é armazenada em um TAG Interno, que está me retornando apenas o valor NULL quando associei a um display em tela. Caso houvesse variação do valor entre as leituras atual e anterior, testaria a conexão do BD e começaria gravar os dados de cada equipamento no BD através da propriedade WriteRecord() da consulta pré configurada, porém para implementar essas chamadas gostaria de utilizar a mesma consulta, tendo em vista que os campos serão os mesmos para todos os equipamentos, estou em dúvida se há como fazer uma atribuição das propriedades de cada equipamento, que são XO, para a mesma consulta ser chamada n vezes a quantidade de equipamentos, mudando apenas as associações dos campos para o próximo XO. Percebi que ao implementar essa configuração de escrita no evento OnTagRead do Driver gera uma lentidão na aplicação, pensei em tranferir o código de leitura/escrita no BD para um evento criado dentro da TAG Interna responsável pela sinalização de modificação de valores do Driver, porém não sei se é a melhor forma. Dei uma vasculhada no forúm e encontrei esse tópico Melhor prática - Banco de dados, no qual o @Fernando sugere que seja criado um XO e dentro dele seja adicionada um consulta pré-configurada, recebendo em seus campos as propriedades do XO, fiquei em dúvida se crio um novo XO apenas para implementação da gravação no BD, ou se incorporo a consulta aos XOs já criados na aplicação para linkar as propriedades dos equipamentos. Estou confuso e sem saber qual a melhor maneira de implementação, caso alguém possa me auxiliar serei grato, abraço.

Olá Osvaldo,

Conforme conversamos, basicamente sua dúvida é a seguinte:

Devo criar um Hist dentro de cada XO da aplicação ou consigo criar um Hist no BD e chama-lo dentro de cada XO associando as propriedades aos campos quando quiser gravar no BD?

Você deve criar um histórico no XO, e associar as propriedades aos campos.
Se utilizar o mesmo nome de tabela na instância, os dados serão inseridos na mesma tabela, se mudar, novas tabelas serão criadas.

Para executar um WriteRecord no histórico da instância, uma das formas é criar uma propriedade no XObject do tipo “Hist”, e arrastar o Histórico desejado até a coluna valor inicial dessa propriedade.
Para usar o método “WriteRecord”, no script do evento que irá gravar um novo valor no histórico, busque a instancia do XObject através do AppBrowser e a propriedade do histórico. No final acrescente “.WriteRecord()”, conforme estrutura de script a seguir:

“NomedaInstancia.Propriedade.WriteRecord()”.