Oracle xmltype store as binary options


A documentação da Oracle alega que armazena XMLType mais compacto como BINARY XML do que como CLOB. Mas como faço para descobrir quanto espaço é tomado pelo xml binário Então, vsize parece ser o tamanho de algum tipo de ponteiro ou localizador LOB, e getclobval desembala o XML binário em texto. Mas o que acontece com o tamanho de armazenamento do XML binário Por favor, ajude, o tamanho da tabela é de 340GB, por isso vale a pena olhar em opções de armazenamento. Perguntou Jul 15 14 at 17:41 Bem, um segmento não tem nada a ver com uma linha como tal. Um segmento é uma tabela, uma partição de tabela, um índice, um LOB. O importante é armazenar mais de 4k dentro dele, de modo que seu lob não será armazenado na linha que significa dentro do bloco de banco de dados real da linha em si, mas é armazenado em um segmento LOB de linha quotout. Ndash gvenzl Jul 22 14 às 13:00 rep questão, não permitiu postar comentários que você queria dizer entre as perguntas como eu entendi. A única semelhança é questão de espaço de armazenamento, pensei que poderia ser útil para estimar estimativa. Você não mencionou que tipo de dados você vai armazenar como bXML. Descompacta o XML binário em texto Se XML puro, em seguida, depende do compressor que você vai usar. Geralmente lzmagzip é usado para compressão binária. Talvez eu esteja escrevendo sobre coisas óbvias, mas isso é tudo o que sei16 Escolha do XMLType Armazenamento e indexação Introdução à escolha de um modelo de armazenamento XMLType e abordagens de indexação XMLType é um tipo de dados SQL abstrato que fornece diferentes modelos de armazenamento e indexação para melhor ajustar seus dados XML E seu uso dele. Como é um tipo de dados abstratos, suas aplicações e consultas de banco de dados ganham flexibilidade: a mesma interface está disponível para todas as operações XMLType. Aplicativos diferentes usam dados XML de diferentes maneiras. Às vezes é construído a partir de fontes de dados relacionais, por isso é relativamente estruturado. Às vezes é usado para operações de extração, transformação e carregamento (ETL), caso em que também é bastante estruturado. Às vezes, é usado para documentos de forma livre (não estruturados ou semi-estruturados), como livros e artigos. Abordagens de recuperação também podem ser diferentes para diferentes tipos de dados. Os casos de uso centrados nos dados envolvem frequentemente um conjunto fixo de consultas, enquanto que os casos de uso centrados em documentos envolvem frequentemente consultas arbitrárias (ad-hoc). Como existe um amplo espectro de uso de XML, não há um modelo de armazenamento de tamanho único que ofereça o melhor desempenho e flexibilidade para cada caso de uso. O Oracle XML DB oferece dois modelos de armazenamento para XMLType. E vários métodos de indexação adequados a esses diferentes modelos de armazenamento. Você pode personalizar o desempenho e a funcionalidade para melhor se ajustar ao tipo de dados XML que você tem e às formas de usá-lo. Portanto, uma decisão-chave para fazer é qual modelo de armazenamento XMLType usar para quais dados XML. Este capítulo ajuda você a escolher a melhor opção de armazenamento para um determinado caso de uso. As tabelas e colunas XMLType podem ser armazenadas das seguintes maneiras: Armazenamento binário XML ndash Isso também é referido como persistência pós-análise. É o modelo de armazenamento padrão do Oracle XML DB. É um formato binário pós-análise projetado especificamente para dados XML. XML binário é compacto e compatível com esquema XML. A maior vantagem do armazenamento binário XML é a flexibilidade. Você pode usá-lo para documentos baseados em esquema XML ou para documentos que não são baseados em um esquema XML. Você pode usá-lo com um esquema XML que permite alta variabilidade de dados ou que evolui consideravelmente ou inesperadamente. Este modelo de armazenamento também fornece atualizações parciais eficientes e avaliação de consulta streamable. Armazenamento objeto-relacional ndash Isso também é referido como armazenamento estruturado e persistência baseada em objetos. Este modelo de armazenamento representa uma decomposição de entidade-relação (ER) dos dados XML. Ele fornece o melhor desempenho para dados altamente estruturados com um conjunto de consultas conhecido e mais ou menos fixo. O desempenho da consulta corresponde ao dos dados relacionais e as atualizações podem ser realizadas no local. Começando com o Oracle Database 12 c Release 1 (12.1.0.1), o modelo de armazenamento não estruturado (CLOB) para XMLType está obsoleto. Em vez disso, use o armazenamento XML binário. Se você tiver exising dados XMLType que é armazenado como dados CLOB, em seguida, considere movê-lo para formato binário de armazenamento XML usando Oracle GoldenGate. Se a fidelidade do documento é importante para um documento XML específico, em seguida, armazene uma cópia dele em uma coluna CLOB relacional. O Oracle XML DB suporta os seguintes tipos de índices em dados XMLType. Índices funcionais de árvore B no armazenamento objeto-relacional Índice de pesquisa XML no armazenamento XML binário XMLIndex com componentes estruturados e não estruturados no armazenamento binário XML Índices de árvore B nas tabelas secundárias criadas automaticamente para XMLIndex (componentes estruturados e não estruturados) no armazenamento XML binário Diferentes casos de uso chamar para diferentes combinações de XMLType armazenamento modelo e índices. XMLType Espectro de Caso de Uso: Centrado nos Dados para Centrar no Documento Ao escolher um modelo de armazenamento XMLType, considere a natureza de seus dados XML e as formas como você o usa. Há um espectro de casos de uso, que vão desde a maioria dos dados centrada na maioria dos document-centric. Isso é ilustrado na Figura 16-1. Que mostra os casos mais centrados em dados à esquerda e os casos mais centrados em documentos à direita. Figura 16-1 Casos de Uso XML e Modelos de Armazenamento XMLType Descrição da Figura 16-1 Casos de Uso XML e Modelos de Armazenamento XMLType Os dados centrados em dados são altamente estruturados, com estrutura relativamente estática e previsível e seus aplicativos aproveitam essa estrutura. Os dados estão em conformidade com um esquema XML. Os dados centrados em documentos podem ser divididos em dois casos: Os dados são geralmente sem estrutura ou são de estrutura variável. Isso inclui o caso de documentos que possuem partes estruturadas e não estruturadas. A estrutura do documento pode variar ao longo do tempo (evolução), eo conteúdo pode ser misturado (semi-estruturado), com muitos elementos contendo tanto nós de texto e elementos filho. Muitos elementos XML podem estar ausentes ou podem aparecer em ordens diferentes. Os documentos podem ou não estar em conformidade com um esquema XML. Os dados são relativamente estruturados, mas seus aplicativos não aproveitam essa estrutura: tratam os dados como se estivessem sem estrutura. Casos de uso comuns para dados XML armazenados como XMLType As recomendações são fornecidas para casos de uso de aplicativos que correspondem aos casos de uso comuns para dados XML armazenados como XMLType. Se o seu caso de uso for comum, para que não seja abordado aqui, consulte o restante deste capítulo para obter informações sobre casos especiais. Esta seção é sobre o uso de dados XML que é persistente como XMLType. Um caso de uso comum para dados XML envolve a geração de dados XML a partir de dados relacionais. Esse caso não é abordado aqui, pois envolve armazenamento relacional e os dados XML gerados não são necessariamente persistidos. (Para casos em que os dados XML gerados são persistentes como XMLType, consulte XMLType Caso de Uso: Dados XML Estendidos para ETL.) Neste caso de uso, não há necessidade de atualizar ou consultar fragmentos de dados XML armazenados no banco de dados. Você tem essas opções para este caso de uso: Armazená-lo como XMLType usando armazenamento binário XML. Armazene-o em uma coluna BLOB ou CLOB relacional, de preferência um LOB SecureFiles. Se você armazenar os dados XML em uma coluna LOB relacional, não como XMLType. O banco de dados Oracle não analisa os dados e não pode garantir sua validade. (E você não pode executar operações XMLType nos dados.) XMLType Caso de Uso: Integração de Dados de Fontes Diversas com Esquemas XML Diferentes Se seus dados XML vêm de múltiplas fontes de dados que usam diferentes esquemas XML, então use armazenamento binário XML. Este caso de uso tem três subcases: Se os dados XML contiver ilhas de dados estruturados e previsíveis e suas consultas forem conhecidas, use XMLIndex com um componente estruturado para indexar as ilhas estruturadas (mesmo se os dados que envolvem essas ilhas não forem estruturados). Um componente de índice estruturado reflete as consultas que você usa. Um agregador de notícias RSS é um exemplo de tal caso de uso. Se não houver tais ilhas estruturadas ou suas consultas são desconhecidas antes do tempo (ad hoc), em seguida, use XMLIndex com um componente não estruturado. Se você usar consultas que envolvem pesquisa de texto completo, em seguida, use um índice de pesquisa XML, juntamente com XQuery pragma ora: noschema. XMLType Caso de Uso: Dados XML Estendidos para ETL Neste caso de uso, os dados são extraídos de fontes externas, transformados para atender necessidades operacionais (tipicamente relacionais) e então carregados no banco de dados: extract. transformar. Carga (ETL). Em particular, a transformação distingue este caso de uso. Os casos de uso de ETL geralmente integram dados de múltiplas aplicações que são mantidas ou hospedadas por várias partes usando diferentes sistemas de software e hardware. Os dados que são extraídos são muitas vezes a responsabilidade de outras partes do que aqueles que transformá-lo ou usá-lo após a transformação. Os dados XML envolvidos normalmente são altamente estruturados e estão em conformidade com um esquema XML. Este caso de uso cobre tanto a produção de dados relacionais a partir de dados XML como a geração de dados XML a partir de dados relacionais. Um subconjunto de casos de uso ETL envolvem a necessidade de atualizar eficientemente os dados XML. A atualização pode envolver a substituição de um documento XML inteiro ou alterações apenas a fragmentos de um documento (atualização parcial). O armazenamento objeto-relacional de dados XMLType é geralmente apropriado para este caso de uso. XMLType Caso de Uso: Dados XML Semi-Estruturados Neste caso de uso, seus dados XML são de forma variável ou grandes porções dele não estão bem definidas. Pode não haver um esquema XML associado, ou o esquema XML pode permitir alta variabilidade de dados ou evoluir consideravelmente ou de formas inesperadas. O armazenamento XML binário de dados XMLType geralmente é apropriado para este caso de uso. Use a indexação de XMLIndex de componente estruturado quando os caminhos de consulta são conhecidos e use indexação de XMLIndex de componentes não estruturados subconjuntos de caminho quando caminhos não são conhecidos de antemão (consultas ad hoc). Use um índice de pesquisa XML para consultas de Texto Completo do XQuery. XMLType Caso de Uso: Consultas de Business Intelligence Para habilitar consultas de Business Intelligence (BI) sobre dados XML, você pode usar a função XMLTable SQL / XML para projetar valores contidos nos dados como colunas de uma tabela virtual. Em seguida, use as janelas de função analítica, juntamente com SQL ORDER BY e GROUP BY. Para operar em colunas da tabela virtual. Para consultas de inteligência de negócios, você geralmente fará tudo o seguinte: Armazene seus dados XMLType como XML binário. Use um índice XMLIndex com um componente estruturado. Criar vistas relacionais sobre os dados usando a função XMLTable SQL / XML. Onde as vistas projetam todas as colunas de interesse para a aplicação de BI. Escreva suas consultas de aplicativo em relação a essas exibições relacionais. Se o índice XMLIndex é criado na correspondência um-para-um para essas exibições, o Oracle Database converte automaticamente consultas sobre as visualizações para consultas sobre as tabelas relacionais do componente XMLIndex estruturado, fornecendo desempenho relacional. Quando você usa janelas de função analítica, ORDER BY. Ou GROUP BY em uma coluna da tabela virtual, essas operações são convertidas para janelas, ORDER BY. E operações GROUP BY nas colunas físicas correspondentes das tabelas XMLIndex do componente estruturado.4 XMLType Operações Um atributo que segue um asterisco (), barras duplas (//) ou períodos duplos (.) Por exemplo, / A // attr. / A // attr. Ou /A//../attr Um período (.) Ou um asterisco () no final de uma expressão de caminho Um predicado após um período (.) Ou um asterisco () As igualdades literais de strings são suportadas com as seguintes restrições: Lado esquerdo deve ser um caminho ndash período (.) Por si só não é permitido, por exemplo. Cão não é permitido O lado direito deve ser um literal Qualquer coisa não expressível por sintaxe abreviada é sem suporte Para o otimizador baseado em custo para melhor estimar os custos e seletivities para a função existeNode. Você deve primeiro coletar estatísticas em sua indexação CTXXPATH usando o comando ANALYZE ou o pacote DBMSSTATS da seguinte forma: ou você pode simplesmente analisar a tabela inteira: CTXXPATH Índices Em tabelas XMLType baseadas em XML Schema As consultas XPath na tabela XMLType baseada em XML são candidatas para XPath reescrever. Uma expressão existsNode em uma consulta pode ser reescrita para um conjunto de operadores nas colunas objeto-relacionais subjacentes da tabela baseada em esquema. Nesse caso, o índice CTXXPATH não pode mais ser usado pela consulta, uma vez que só pode ser usado para satisfazer as consultas existsNode na expressão de índice, especificada durante o tempo de criação do índice. No Exemplo 4-38. Um índice CTXXPATH é criado na ordem de compra da tabela. A expressão existsNode especificada na cláusula WHERE é reescrita em uma expressão que verifica se a coluna objeto-relacional subjacente não é NULL. Isso está de acordo com as regras de reescrita do XPath. A dica do otimizador / NOXMLQUERYREWRITE / faz com que a reescrita XPath seja desativada para a consulta, de modo que a expressão existsNode permanece inalterada. Exemplo 4-38 Criando um índice CTXXPATH em uma tabela XMLType baseada em esquema Determinando se um índice está sendo usado: rastreamento Use rastreamento para determinar se um índice está sendo usado ou não. A Indexação do CTXXPATH Depende das Opções de Armazenamento e do Tamanho do Documento A escolha de usar os índices CTXXPATH depende das opções de armazenamento usadas, do tamanho dos documentos sendo indexados e da mistura de consultas envolvida. Os índices CTXXPATH podem ser usados ​​para consultas com expressões existsNode em tabelas e colunas XMLType não baseadas em esquema quando os dados são armazenados como um valor CLOB. Os índices CTXXPATH também são úteis quando partes CLOB de documentos baseados em esquema são consultadas. O termo armazenamento baseado em CLOB é usado para aplicar a esses casos. Os índices CTXXPATH também podem ser usados ​​para consultas existsNode em colunas, tabelas e visualizações XMLType baseadas em esquema, bem como visões não baseadas em esquema. O termo armazenamento objeto-relacional é usado para se aplicar a esses casos. Se o armazenamento é baseado em CLOB: Verifique a mistura de consulta para ver se uma fração significativa envolve o mesmo conjunto de expressões XPath. Em caso afirmativo, crie índices baseados em função para essas expressões. Verifique a mistura de consulta para ver se uma fração significativa envolve consultas existsNode. Os índices CTXXPATH são particularmente úteis se houver um grande número de pequenos documentos e para consultas existsNode com baixa seletividade, ou seja, com número relativamente menor de hits. Em tais cenários, criar índices CTXXPATH. Como regra geral, o uso de índices é recomendado para ambientes OLTP (Online Transaction Processing) com poucas atualizações. Se o armazenamento é objeto-relacional: Verifique a mistura de consulta para ver se uma fração significativa envolve expressões XPath que podem ser reescritas. Capítulo 6, XPath Rewrite descreve as expressões XPath que podem potencialmente ser reescritas. O conjunto de expressões XPath que são realmente reescritas depende do tipo de expressão XPath, bem como o esquema XML registado. Btree, bitmap e outros índices relacionais e de domínio podem ser construídos para melhorar o desempenho. XPath rewrite oferece vantagens de desempenho significativas. Use-o em geral. É ativado por padrão. Verifique a mistura de consulta para ver se uma fração significativa envolve o mesmo conjunto de expressões XPath. Em caso afirmativo, a Oracle recomenda que você crie índices baseados em função para essas expressões. Na presença da reescrita XPath, as expressões XPath são, por vezes, melhor avaliadas utilizando índices baseados em função quando: As consultas envolvem percorrer colecções. Por exemplo, em extractValue (/ PurchaseOrder / Lineitems / Lineitem / Addresses / Address). Múltiplas coleções são percorridas sob XPath reescrever. As consultas envolvem o retorno de um elemento escalar de uma coleção. Por exemplo, em extractValue (/ PurchaseOrder / PONOList / PONO1). Um único item escalar precisa ser retornado, e os índices baseados em função são mais eficientes para isso. Nesse caso, você pode desativar a reescrita XPath usando dicas de nível de consulta ou de nível de sessão e usar o índice baseado em função Das consultas que não são reescritas, verifique o mix de consulta para ver se uma fração significativa envolve consultas existsNode. Se assim for, então você deve construir índices CTXXPATH. Os índices CTXXPATH são particularmente úteis se houver um grande número de pequenos documentos e para consultas existsNode com baixa seletividade, ou seja, com número relativamente menor de hits. Use índices para ambientes OLTP que raramente são atualizados. Manter CTXXPATH e índices baseados em função quando há atualizações freqüentes adiciona sobrecarga adicional. Leve isso em conta ao decidir se os índices baseados em função, os índices CTXXPATH ou ambos devem ser construídos e mantidos. Quando ambos os tipos de índices são criados, o Oracle Database faz uma decisão baseada em custo que o índice deve usar. Tente primeiro determinar as estatísticas sobre a indexação CTXXPATH para ajudar o otimizador na escolha do índice CTXXPATH quando apropriado. Índices de Texto Oracle em Colunas XMLType Você pode criar um índice Oracle Text em uma coluna XMLType. Um índice do Oracle Text permite que a função contém SQL para pesquisa de texto completo sobre XML. Para criar um índice do Oracle Text, use CREATE INDEX. Especificando o INDEXTYPE. Exemplo 4-39 Criando um índice de texto do Oracle Você também pode executar operações de texto do Oracle, como contém e pontuação em colunas de tipo XML. Exemplo 4-40 Pesquisando dados XML usando CONTAINS Este exemplo mostra uma pesquisa do Oracle Text usando contains. Capítulo 10, Pesquisa de Texto Completo sobre XML para obter mais informações sobre o uso de operações do Oracle Text com o Oracle XML DB. O script nesta página aprimora a navegação de conteúdo, mas não altera o conteúdo de nenhuma forma.

Comments

Popular posts from this blog

Instaforex no deposit bonus $ 40 a day

Free welcome bonus no deposit required forex 2018 nissan

Forex relógio gadget windows 7