{"id":15411,"date":"2020-12-15T08:15:18","date_gmt":"2020-12-15T07:15:18","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/"},"modified":"2020-12-15T08:15:18","modified_gmt":"2020-12-15T07:15:18","slug":"efficiently-query-dba_extents-for-file_id-block_id","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/","title":{"rendered":"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\n<i>This was initially posted to CERN Database blog on Thursday, 27 September 2018 where it seems to be lost. Here is a copy thanks to <a href=\"https:\/\/web.archive.org\/web\/20191229201611\/https:\/\/db-blog.web.cern.ch\/blog\/franck-pachot\/2018-09-efficiently-query-dbaextents-fileid-blockid\" target=\"_blank\" rel=\"noopener noreferrer\">web.archive.org<\/a><\/i><\/p>\n<p>Did you ever try to query DBA_EXTENTS on a very large database with LMT tablespaces? I had to, in the past, in order to find which segment a corrupt block belonged to. The information about extent allocation is stored in the datafiles headers, visible though X$KTFBUE, and queries on it can be very expensive. In addition to that, the optimizer tends to start with the segments and get to this X$KTFBUE for each of them. At this time, I had quickly created a view on the internal dictionary tables, forcing to start by X$KTFBUE with materialized CTE, to replace DBA_EXTENTS. I published this on <a href=\"https:\/\/www.dba-village.com\/village\/dvp_scripts.ScriptDetails?ScriptIdA=2543\" target=\"_blank\" rel=\"noopener noreferrer\">dba-village<\/a> in 2006.<\/p>\n<p>I recently wanted to know the segment\/extend for a hot block, identified by its file_id and block_id on a 900TB database with 7000 datafiles and 90000 extents, so I went back to this old query and I got my result in 1 second. The idea is to be sure that we start with the file (X$KCCFE) and then get to the extent allocation (X$KTFBUE) before going to the segments:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-46158\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\" alt=\"\" width=\"1262\" height=\"730\" \/><\/a><\/p>\n<p>So here is the query:<\/p>\n<pre><code>\ncolumn owner format a6\ncolumn segment_type format a20\ncolumn segment_name format a15\ncolumn partition_name format a15\nset linesize 200\nset timing on time on echo on autotrace on stat\nWITH\n l AS ( \/* LMT extents indexed on ktfbuesegtsn,ktfbuesegfno,ktfbuesegbno *\/\n  SELECT ktfbuesegtsn segtsn,ktfbuesegfno segrfn,ktfbuesegbno segbid, ktfbuefno extrfn,\n         ktfbuebno fstbid,ktfbuebno + ktfbueblks - 1 lstbid,ktfbueblks extblks,ktfbueextno extno\n  FROM sys.x$ktfbue\n ),\n d AS ( \/* DMT extents ts#, segfile#, segblock# *\/\n  SELECT ts# segtsn,segfile# segrfn,segblock# segbid, file# extrfn,\n         block# fstbid,block# + length - 1 lstbid,length extblks, ext# extno\n  FROM sys.uet$\n ),\n s AS ( \/* segment information for the tablespace that contains afn file *\/\n  SELECT \/*+ materialized *\/\n  f1.fenum afn,f1.ferfn rfn,s.ts# segtsn,s.FILE# segrfn,s.BLOCK# segbid ,s.TYPE# segtype,f2.fenum segafn,t.name tsname,blocksize\n  FROM sys.seg$ s, sys.ts$ t, sys.x$kccfe f1,sys.x$kccfe f2 \n  WHERE s.ts#=t.ts# AND t.ts#=f1.fetsn AND s.FILE#=f2.ferfn AND s.ts#=f2.fetsn\n ),\n m AS ( \/* extent mapping for the tablespace that contains afn file *\/\nSELECT \/*+ use_nl(e) ordered *\/\n s.afn,s.segtsn,s.segrfn,s.segbid,extrfn,fstbid,lstbid,extblks,extno, segtype,s.rfn, tsname,blocksize\n FROM s,l e\n WHERE e.segtsn=s.segtsn AND e.segrfn=s.segrfn AND e.segbid=s.segbid\n UNION ALL\n SELECT \/*+ use_nl(e) ordered *\/ \n s.afn,s.segtsn,s.segrfn,s.segbid,extrfn,fstbid,lstbid,extblks,extno, segtype,s.rfn, tsname,blocksize\n FROM s,d e\n  WHERE e.segtsn=s.segtsn AND e.segrfn=s.segrfn AND e.segbid=s.segbid\n UNION ALL\n SELECT \/*+ use_nl(e) use_nl(t) ordered *\/\n f.fenum afn,null segtsn,null segrfn,null segbid,f.ferfn extrfn,e.ktfbfebno fstbid,e.ktfbfebno+e.ktfbfeblks-1 lstbid,e.ktfbfeblks extblks,null extno, null segtype,f.ferfn rfn,name tsname,blocksize\n FROM sys.x$kccfe f,sys.x$ktfbfe e,sys.ts$ t\n WHERE t.ts#=f.fetsn and e.ktfbfetsn=f.fetsn and e.ktfbfefno=f.ferfn\n UNION ALL\n SELECT \/*+ use_nl(e) use_nl(t) ordered *\/\n f.fenum afn,null segtsn,null segrfn,null segbid,f.ferfn extrfn,e.block# fstbid,e.block#+e.length-1 lstbid,e.length extblks,null extno, null segtype,f.ferfn rfn,name tsname,blocksize\n FROM sys.x$kccfe f,sys.fet$ e,sys.ts$ t\n WHERE t.ts#=f.fetsn and e.ts#=f.fetsn and e.file#=f.ferfn\n ),\n o AS (\n  SELECT s.tablespace_id segtsn,s.relative_fno segrfn,s.header_block   segbid,s.segment_type,s.owner,s.segment_name,s.partition_name\n  FROM SYS_DBA_SEGS s\n ),\ndatafile_map as (\nSELECT\n afn file_id,fstbid block_id,extblks blocks,nvl(segment_type,decode(segtype,null,'free space','type='||segtype)) segment_type,\n owner,segment_name,partition_name,extno extent_id,extblks*blocksize bytes,\n tsname tablespace_name,rfn relative_fno,m.segtsn,m.segrfn,m.segbid\n FROM m,o WHERE extrfn=rfn and m.segtsn=o.segtsn(+) AND m.segrfn=o.segrfn(+) AND m.segbid=o.segbid(+)\nUNION ALL\nSELECT\n file_id+(select to_number(value) from v$parameter WHERE name='db_files') file_id,\n 1 block_id,blocks,'tempfile' segment_type,\n '' owner,file_name segment_name,'' partition_name,0 extent_id,bytes,\n  tablespace_name,relative_fno,0 segtsn,0 segrfn,0 segbid\n FROM dba_temp_files\n)\nselect * from datafile_map where file_id=5495 and 11970455 between block_id and block_id+blocks\n<\/code><\/pre>\n<p>And here is the result, with execution statistics:<\/p>\n<pre><code>\n\n   FILE_ID   BLOCK_ID     BLOCKS SEGMENT_TYPE         OWNER  SEGMENT_NAME    PARTITION_NAME    EXTENT_ID      BYTES TABLESPACE_NAME      RELATIVE_FNO     SEGTSN     SEGRFN    SEGBID\n---------- ---------- ---------- -------------------- ------ --------------- ---------------- ---------- ---------- -------------------- ------------ ---------- ---------- ----------\n      5495   11964544            8192 INDEX PARTITION LHCLOG DN_PK           PART_DN_20161022 1342         67108864 LOG_DATA_20161022            1024       6364       1024        162\n\nElapsed: 00:00:01.25\n\nStatistics\n----------------------------------------------------------\n        103  recursive calls\n       1071  db block gets\n      21685  consistent gets\n        782  physical reads\n        840  redo size\n       1548  bytes sent via SQL*Net to client\n        520  bytes received via SQL*Net from client\n          2  SQL*Net roundtrips to\/from client\n          0  sorts (memory)\n          0  sorts (disk)\n          1  rows processed\n<\/code><\/pre>\n<p>Knowing the segment from the block address is important in performance tuning, when we get the file_id\/block_id from wait event parameters. It is even more important when a block corrution is detected ans having a fast query may help.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . This was initially posted to CERN Database blog on Thursday, 27 September 2018 where it seems to be lost. Here is a copy thanks to web.archive.org Did you ever try to query DBA_EXTENTS on a very large database with LMT tablespaces? I had to, in the past, in order to find [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":15412,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[2216,31,96],"type_dbi":[],"class_list":["post-15411","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-cern","tag-extents","tag-oracle"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID - dbi Blog<\/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:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . This was initially posted to CERN Database blog on Thursday, 27 September 2018 where it seems to be lost. Here is a copy thanks to web.archive.org Did you ever try to query DBA_EXTENTS on a very large database with LMT tablespaces? I had to, in the past, in order to find [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-12-15T07:15:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1262\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID\",\"datePublished\":\"2020-12-15T07:15:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\"},\"wordCount\":275,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\",\"keywords\":[\"CERN\",\"Extents\",\"Oracle\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\",\"name\":\"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\",\"datePublished\":\"2020-12-15T07:15:18+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png\",\"width\":1262,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID - dbi Blog","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:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/","og_locale":"en_US","og_type":"article","og_title":"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID","og_description":"By Franck Pachot . This was initially posted to CERN Database blog on Thursday, 27 September 2018 where it seems to be lost. Here is a copy thanks to web.archive.org Did you ever try to query DBA_EXTENTS on a very large database with LMT tablespaces? I had to, in the past, in order to find [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/","og_site_name":"dbi Blog","article_published_time":"2020-12-15T07:15:18+00:00","og_image":[{"width":1262,"height":730,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID","datePublished":"2020-12-15T07:15:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/"},"wordCount":275,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png","keywords":["CERN","Extents","Oracle"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/","url":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/","name":"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png","datePublished":"2020-12-15T07:15:18+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/CaptureExtentMap.png","width":1262,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/efficiently-query-dba_extents-for-file_id-block_id\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Efficiently query DBA_EXTENTS for FILE_ID \/ BLOCK_ID"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=15411"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15411\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/15412"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=15411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=15411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=15411"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=15411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}