{"id":44,"date":"2008-02-07T23:41:52","date_gmt":"2008-02-08T02:41:52","guid":{"rendered":"http:\/\/www.boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/"},"modified":"2021-02-09T23:32:36","modified_gmt":"2021-02-10T02:32:36","slug":"indices-no-oracle","status":"publish","type":"post","link":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/","title":{"rendered":"\u00edndices no Oracle"},"content":{"rendered":"<p>Saber usar \u00edndices no Oracle \u00e9 o que diferencia os desenvolvedores Oracle dos outros. A pedido de <a href=\"http:\/\/www.caelum.com.br\/caelum\/instrutores.jsp\">um colega<\/a> eu vou escrever um pouco sobre esse assunto.<\/p>\n<p>Para a minha breve demonstra\u00e7\u00e3o , utilizarei a ferramenta Oracle SQL*Plus que acompanha a instala\u00e7\u00e3o do banco de dados. Se desejar, pode usar outra op\u00e7\u00e3o <em>gratuita<\/em> da Oracle de manipula\u00e7\u00e3o de banco de dados, que nada mais \u00e9 que a engine do JDeveloper adequada somente ao desenvolvimento de SQL e PL\/SQL: <a href=\"http:\/\/www.oracle.com\/technology\/products\/database\/sql_developer\/\">Oracle SQL Developer<\/a>.<\/p>\n<p>O banco de dados Oracle tem diversos mecanismos para melhorar a performance de suas queries (consultas).<\/p>\n<p><a href=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"raiva\" src=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg\" alt=\"\" width=\"175\" height=\"250\" \/><\/a><br \/>\n<!--adsense#bannertextoinicio--><\/p>\n<p>Primeiro vamos entender o seguinte: procure somente otimizar alguma query se realmente houver necessidade, ficar tentando otimizar antes mesmo de precisar \u00e9 algo in\u00fatil e uma completa perda de tempo.<\/p>\n<p>N\u00e3o se esque\u00e7am do que <a href=\"http:\/\/en.wikipedia.org\/wiki\/Donald_Knuth\">Donald Knuth<\/a> disse:<a href=\"http:\/\/en.wikipedia.org\/wiki\/Optimization_(computer_science)\">&#8220;N\u00f3s devemos esquecer de pequenas melhorias (praticamente em 97% do tempo): otimiza\u00e7\u00e3o prematura \u00e9 a raiz de todo o mal&#8221;<\/a>.<\/p>\n<p>Outra coisa: eu <strong>n\u00e3o<\/strong> sou DBA e posso ter alguns conceitos que se j\u00e1 n\u00e3o o s\u00e3o, podem se tornar ultrapassados em pouco tempo.<\/p>\n<p>Al\u00e9m disso, para saber se algo \u00e9 lento ou r\u00e1pido, \u00e9 preciso de alguma m\u00e9trica. N\u00e3o d\u00e1 para saber se um carro \u00e9 mais veloz que o outro s\u00f3 pela nossa &#8220;no\u00e7\u00e3o&#8221;, \u00e9 preciso de um veloc\u00edmetro. Em queries n\u00e3o \u00e9 diferente, para isso usamos um mecanismo que detalha o que o banco de dados vai fazer e joga numa tabela para voc\u00ea consultar. Essa tabela se chama PLAN_TABLE, consulte <a href=\"http:\/\/www.adp-gmbh.ch\/ora\/explainplan.html\">esse artigo<\/a> para entend\u00ea-la melhor.<\/p>\n<p>Vou primeiro enumerar alguns conceitos importantes antes de detalhar os \u00edndices:<\/p>\n<ol>\n<li><strong>\u00edndice<\/strong> &#8211; \u00e9 um objeto do banco de dados utilizado para acessar o dado existente numa tabela mais rapidamente<\/li>\n<li><strong>ROWID<\/strong> &#8211; \u00e9 o endere\u00e7o f\u00edsico do registro , informando em qual arquivo e setor o dado exatamente est\u00e1.<\/li>\n<li><strong>hint<\/strong> &#8211; <a href=\"http:\/\/www.dbasupport.com\/oracle\/ora9i\/index_hints.shtml\">s\u00e3o orienta\u00e7\u00f5es de uso de \u00edndice ou algoritmo feitas para a engine do Oracle executar. <\/a><\/li>\n<li><strong>analyze<\/strong> &#8211; <a href=\"http:\/\/download.oracle.com\/docs\/html\/A86647_01\/vmqintro.htm\">m\u00e9todo interno do banco usado para armazenar as informa\u00e7\u00f5es exatas sobre os seus dados dentro do dicion\u00e1rio de dados<\/a>. Essas informa\u00e7\u00f5es ser\u00e3o usadas pelo Oracle em todo novo SQL.<\/li>\n<li><strong>FULL TABLE SCAN<\/strong> &#8211; processo que o RDBMS n\u00e3o utiliza nenhum \u00edndice para ler os dados de uma tabela.<\/li>\n<\/ol>\n<p>Basicamente toda vez que se executa um SQL no banco de dados, o Oracle tem como op\u00e7\u00e3o duas maneiras de trabalho: por <strong>regras<\/strong> e por <strong>estat\u00edsticas<\/strong> .<\/p>\n<p>Antigamente se usava somente via regra e quase todas queries tinham hints, pois o otimizador do Oracle n\u00e3o era muito bom. Hoje quem trabalha s\u00f3 na base de regra \u00e9 louco, isso existe no banco de dados assim como aquelas malditas colunas LONG RAW que s\u00f3 d\u00e3o dor de cabe\u00e7a ao desenvolvedor: <strong>compatibilidade<\/strong>!<\/p>\n<p>Para n\u00e3o ter dor de cabe\u00e7a \u00e9 s\u00f3 manter as estat\u00edsticas de sua base de dados atualizada, que o Oracle quase sempre acha a melhor maneira de montar uma query. Se voc\u00ea tiver um jeito melhor, pode mesmo assim usar hint.<\/p>\n<p>O \u00edndice do banco de dados n\u00e3o \u00e9 aquela coisa do outro mundo, ele segue a mesma filosofia de um \u00edndice de um livro: achar a informa\u00e7\u00e3o que procura mais rapidamente.<\/p>\n<p>Voc\u00ea pega o <a href=\"http:\/\/www.boaglio.com\/index.php\/2007\/10\/01\/effective-java-depois-de-6-anos\/\">Effective Java<\/a> e quer achar aquela dica de <strong>checked exceptions<\/strong>, voc\u00ea tem duas op\u00e7\u00f5es:<\/p>\n<ol>\n<li>folhear uma por uma as quase 250 p\u00e1ginas at\u00e9 achar o que procura, ou<\/li>\n<li>olhar o \u00edndice, descobrir o n\u00famero da p\u00e1gina (que \u00e9 174) e abrir o livro na p\u00e1gina exata<\/li>\n<\/ol>\n<p>Ok, parece uma loucura usar a primeira op\u00e7\u00e3o, mas isso somente funciona se voc\u00ea <strong>sabe<\/strong> o tamanho do livro. Se fosse um simples guia de consulta r\u00e1pida de apenas 2 p\u00e1ginas, a segunda op\u00e7\u00e3o seria a mais irracional, certo?<\/p>\n<p>Pois bem, no banco de dados \u00e9 exatamente desse jeito que a coisa funciona.<\/p>\n<p>Vamos ver um exemplo no nosso banco de dados:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">SQL&gt; create table obj (\r\n  2   id number primary key,\r\n  3   nome varchar2(30) );\r\n\r\nTable created.\r\n\r\nSQL&gt; insert into obj\r\n  2  select rownum, object_name\r\n  3  from all_objects;\r\n\r\n63861 rows created.\r\n\r\nSQL&gt; commit;\r\n\r\nCommit complete.\r\n\r\nSQL&gt; create table obj_sem_analyze as select * from obj;\r\n\r\nTable created.\r\n\r\nSQL&gt; alter table obj_sem_analyze add primary key (id);\r\n\r\nTable altered.\r\n\r\nSQL&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p><!--adsense#bannertextomeio--><\/p>\n<p>No caso da tabela OBJ, temos um \u00edndice criado automaticamente para a chave prim\u00e1ria, que nesse caso \u00e9 a coluna ID. Internamente, o Oracle armazena numa estrutura otimizada de <a href=\"http:\/\/pt.wikipedia.org\/wiki\/%C3%81rvore_B\">\u00e1rvore B<\/a>, com a informa\u00e7\u00e3o do valor da chave (ID) e do ROWID.<\/p>\n<p>Observem no exemplo abaixo obtemos o mesmo registro atrav\u00e9s da chave prim\u00e1ria e do ROWID:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">SQL&gt; select * from obj where ID=1234;\r\n\r\n        ID         NOME\r\n---------- ------------------------------\r\n      1234 V$_LOCK\r\n\r\nSQL&gt; select * from obj where ROWID='AAAQCeAAEAAAAQMAAf';\r\n\r\n        ID         NOME\r\n---------- ------------------------------\r\n      1234 V$_LOCK<\/pre>\n<p>Portanto, na realidade o \u00edndice \u00e9 simplesmente uma combina\u00e7\u00e3o de identificadores e endere\u00e7os f\u00edsicos, assim como listados abaixo:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\"> \r\nSQL&gt; select id,rowid from obj where nome='V$_LOCK';\r\n\r\n        ID      ROWID\r\n---------- ------------------\r\n      1234 AAAQCeAAEAAAAQMAAf\r\n\r\nSQL&gt;<\/pre>\n<p>&nbsp;<\/p>\n<p>Se comparamos com um \u00edndice de um livro, a coluna ID seria o t\u00edtulo e a coluna ROWID seria o n\u00famero da p\u00e1gina. Simples assim.<\/p>\n<p>Vamos voltar para o exemplo e ver algumas informa\u00e7\u00f5es do dicion\u00e1rio de dados sobre essa tabela rec\u00e9m-criada dentro da view USER_TABLES.<\/p>\n<p>Antes disso, verifiquem que tipos de informa\u00e7\u00f5es a view cont\u00e9m, mas n\u00e3o precisa olhar no Google n\u00e3o, isso est\u00e1 no pr\u00f3prio banco:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">select *\r\nfrom dict_columns\r\nwhere  table_name='USER_TABLES'<\/pre>\n<p>&nbsp;<\/p>\n<p>Esse comando listar\u00e1 o nome e descri\u00e7\u00e3o de cada uma das 50 colunas.<\/p>\n<p>Agora somente na tabela obj vamos colher as estat\u00edsticas com o comando <a href=\"http:\/\/www.ss64.com\/ora\/analyze.html\">analyze<\/a>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">SQL&gt; analyze table obj compute statistics;\r\n\r\nTable analyzed.\r\n\r\nSQL&gt;<\/pre>\n<p>Agora listaremos as informa\u00e7\u00f5es que o banco de dados cont\u00e9m:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">SQL&gt; select table_name,num_rows,blocks,empty_blocks from user_tables;\r\n\r\nTABLE_NAME                       NUM_ROWS     BLOCKS EMPTY_BLOCKS\r\n------------------------------ ---------- ---------- ------------\r\nOBJ                                 63861        370           14\r\nOBJ_SEM_ANALYZE\r\n\r\nSQL&gt;<\/pre>\n<p>Note no resultado acima que da tabela OBJ o Oracle sabe algumas coisas, entre elas que cont\u00e9m 63861 registros, j\u00e1 a OBJ_SEM_ANALYZE o Oracle n\u00e3o sabe nada.<\/p>\n<p>O que acontece agora \u00e9 que com a tabela OBJ o Oracle sabe se, dependendo da query utilizada, ele vai usar o \u00edndice da chave prim\u00e1ria ou vai fazer um FULL TABLE SCAN.<\/p>\n<p>Observem o seguinte exemplo: \u00e9 exatamente a mesma query para as duas tabelas, por\u00e9m a com as estat\u00edsticas roda com um custo muito menor (648 contra 2130) . Custo menor para query significa que ela executar\u00e1 em menos tempo.<\/p>\n<p>Exemplo de query <strong>sem<\/strong> estat\u00edsticas no Oracle SQL Developer:<\/p>\n<p><a href=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/oraind2-boaglio-com.png\"><img loading=\"lazy\" decoding=\"async\" title=\"oraind2-boaglio-com\" src=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/oraind2-boaglio-com-300x169.png\" alt=\"\" width=\"300\" height=\"169\" \/><\/a><\/p>\n<p>Exemplo de query <strong>com<\/strong> estat\u00edsticas no Oracle SQL Developer:<\/p>\n<p><a href=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/oraind1-boaglio-com.png\"><img loading=\"lazy\" decoding=\"async\" title=\"oraind1-boaglio-com\" src=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/oraind1-boaglio-com-300x179.png\" alt=\"\" width=\"300\" height=\"179\" \/><\/a><\/p>\n<p>Espero que esse breve artigo tenha esclarecido o funcionamento de \u00edndices no Oracle. Portanto chame o seu DBA de canto e pergunte: quando foi que voc\u00ea rodou o analyze da \u00faltima vez? Voc\u00ea poder\u00e1 se surpreender com a resposta! =)<\/p>\n<p>Fernando Boaglio, para a comunidade. =)<\/p>\n<p>Refer\u00eancias:<br \/>\n<a href=\"http:\/\/www.dba-oracle.com\/art_9i_indexing.htm\">Turbocharge SQL with advanced Oracle indexing<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Saber usar \u00edndices no Oracle \u00e9 o que diferencia os desenvolvedores Oracle dos outros. A pedido de um colega eu vou escrever um pouco sobre esse assunto. Para a minha breve demonstra\u00e7\u00e3o , utilizarei a ferramenta Oracle SQL*Plus que acompanha a instala\u00e7\u00e3o do banco de dados. Se desejar, pode usar outra op\u00e7\u00e3o gratuita da Oracle [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-44","post","type-post","status-publish","format-standard","hentry","category-oracle"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u00edndices no Oracle - Boaglio.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00edndices no Oracle - Boaglio.com\" \/>\n<meta property=\"og:description\" content=\"Saber usar \u00edndices no Oracle \u00e9 o que diferencia os desenvolvedores Oracle dos outros. A pedido de um colega eu vou escrever um pouco sobre esse assunto. Para a minha breve demonstra\u00e7\u00e3o , utilizarei a ferramenta Oracle SQL*Plus que acompanha a instala\u00e7\u00e3o do banco de dados. Se desejar, pode usar outra op\u00e7\u00e3o gratuita da Oracle [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/\" \/>\n<meta property=\"og:site_name\" content=\"Boaglio.com\" \/>\n<meta property=\"article:published_time\" content=\"2008-02-08T02:41:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-10T02:32:36+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg\" \/>\n<meta name=\"author\" content=\"Fernando Boaglio\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fernando Boaglio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/\"},\"author\":{\"name\":\"Fernando Boaglio\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/#\\\/schema\\\/person\\\/8c1801baf8ab6b6d207210832f6407d7\"},\"headline\":\"\u00edndices no Oracle\",\"datePublished\":\"2008-02-08T02:41:52+00:00\",\"dateModified\":\"2021-02-10T02:32:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/\"},\"wordCount\":1039,\"commentCount\":9,\"image\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.boaglio.com\\\/wp-content\\\/uploads\\\/2008\\\/02\\\/raiva.jpg\",\"articleSection\":[\"Oracle\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/\",\"url\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/\",\"name\":\"\u00edndices no Oracle - Boaglio.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.boaglio.com\\\/wp-content\\\/uploads\\\/2008\\\/02\\\/raiva.jpg\",\"datePublished\":\"2008-02-08T02:41:52+00:00\",\"dateModified\":\"2021-02-10T02:32:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/#\\\/schema\\\/person\\\/8c1801baf8ab6b6d207210832f6407d7\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.boaglio.com\\\/wp-content\\\/uploads\\\/2008\\\/02\\\/raiva.jpg\",\"contentUrl\":\"http:\\\/\\\/www.boaglio.com\\\/wp-content\\\/uploads\\\/2008\\\/02\\\/raiva.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/2008\\\/02\\\/07\\\/indices-no-oracle\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/boaglio.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00c3\u00adndices no Oracle\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/#website\",\"url\":\"https:\\\/\\\/boaglio.com\\\/\",\"name\":\"Boaglio.com\",\"description\":\"tecnologia e cr\u00edticas construtivas\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/boaglio.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/boaglio.com\\\/#\\\/schema\\\/person\\\/8c1801baf8ab6b6d207210832f6407d7\",\"name\":\"Fernando Boaglio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a939c977cba6bad98bab6b4ef8e44bdd3908fa870d05667774506e6d0b692e47?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a939c977cba6bad98bab6b4ef8e44bdd3908fa870d05667774506e6d0b692e47?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a939c977cba6bad98bab6b4ef8e44bdd3908fa870d05667774506e6d0b692e47?s=96&d=mm&r=g\",\"caption\":\"Fernando Boaglio\"},\"description\":\"???\",\"sameAs\":[\"https:\\\/\\\/www.boaglio.com\"],\"url\":\"https:\\\/\\\/boaglio.com\\\/index.php\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00edndices no Oracle - Boaglio.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/","og_locale":"pt_BR","og_type":"article","og_title":"\u00edndices no Oracle - Boaglio.com","og_description":"Saber usar \u00edndices no Oracle \u00e9 o que diferencia os desenvolvedores Oracle dos outros. A pedido de um colega eu vou escrever um pouco sobre esse assunto. Para a minha breve demonstra\u00e7\u00e3o , utilizarei a ferramenta Oracle SQL*Plus que acompanha a instala\u00e7\u00e3o do banco de dados. Se desejar, pode usar outra op\u00e7\u00e3o gratuita da Oracle [&hellip;]","og_url":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/","og_site_name":"Boaglio.com","article_published_time":"2008-02-08T02:41:52+00:00","article_modified_time":"2021-02-10T02:32:36+00:00","og_image":[{"url":"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg","type":"","width":"","height":""}],"author":"Fernando Boaglio","twitter_misc":{"Escrito por":"Fernando Boaglio","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#article","isPartOf":{"@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/"},"author":{"name":"Fernando Boaglio","@id":"https:\/\/boaglio.com\/#\/schema\/person\/8c1801baf8ab6b6d207210832f6407d7"},"headline":"\u00edndices no Oracle","datePublished":"2008-02-08T02:41:52+00:00","dateModified":"2021-02-10T02:32:36+00:00","mainEntityOfPage":{"@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/"},"wordCount":1039,"commentCount":9,"image":{"@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#primaryimage"},"thumbnailUrl":"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg","articleSection":["Oracle"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/","url":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/","name":"\u00edndices no Oracle - Boaglio.com","isPartOf":{"@id":"https:\/\/boaglio.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#primaryimage"},"image":{"@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#primaryimage"},"thumbnailUrl":"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg","datePublished":"2008-02-08T02:41:52+00:00","dateModified":"2021-02-10T02:32:36+00:00","author":{"@id":"https:\/\/boaglio.com\/#\/schema\/person\/8c1801baf8ab6b6d207210832f6407d7"},"breadcrumb":{"@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#primaryimage","url":"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg","contentUrl":"http:\/\/www.boaglio.com\/wp-content\/uploads\/2008\/02\/raiva.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/boaglio.com\/index.php\/2008\/02\/07\/indices-no-oracle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/boaglio.com\/"},{"@type":"ListItem","position":2,"name":"\u00c3\u00adndices no Oracle"}]},{"@type":"WebSite","@id":"https:\/\/boaglio.com\/#website","url":"https:\/\/boaglio.com\/","name":"Boaglio.com","description":"tecnologia e cr\u00edticas construtivas","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/boaglio.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/boaglio.com\/#\/schema\/person\/8c1801baf8ab6b6d207210832f6407d7","name":"Fernando Boaglio","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/a939c977cba6bad98bab6b4ef8e44bdd3908fa870d05667774506e6d0b692e47?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a939c977cba6bad98bab6b4ef8e44bdd3908fa870d05667774506e6d0b692e47?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a939c977cba6bad98bab6b4ef8e44bdd3908fa870d05667774506e6d0b692e47?s=96&d=mm&r=g","caption":"Fernando Boaglio"},"description":"???","sameAs":["https:\/\/www.boaglio.com"],"url":"https:\/\/boaglio.com\/index.php\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/posts\/44","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/comments?post=44"}],"version-history":[{"count":7,"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/posts\/44\/revisions"}],"predecessor-version":[{"id":2227,"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/posts\/44\/revisions\/2227"}],"wp:attachment":[{"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/media?parent=44"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/categories?post=44"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/boaglio.com\/index.php\/wp-json\/wp\/v2\/tags?post=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}