{"id":2582,"date":"2012-06-08T11:15:00","date_gmt":"2012-06-08T09:15:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/"},"modified":"2012-06-08T11:15:00","modified_gmt":"2012-06-08T09:15:00","slug":"protecting-an-oracle-database-from-block-corruption","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/","title":{"rendered":"Protecting an Oracle database from block corruption"},"content":{"rendered":"<p>Data can be corrupted in different ways, for example an I\/O issue when reading data from the storage or a memory issue when updating data. The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking.<\/p>\n<p>This posting will present this parameter and some tests to measure its impact on the database.<\/p>\n<p>According to the documentation, the db_block_checking parameter specifies if Oracle performs a block checking or not. Block checking can prevent data corruption in the memory but it does not prevent from human corruption if a user inserts or updates wrong data.<\/p>\n<h3>Settings<\/h3>\n<p>db_block_checking is a dynamic parameter, it can be set at session or system level :\u00a0<em>alter system\/session set\u00a0db_block_checking =\u00a0Value<\/em><br \/>\nFrom Oracle 8.1.6 to 10g, only two choices were possible, TRUE or FALSE. Siince Oracle 10gR2, 4 values are possible OFF, LOW, MEDIUM, and FULL.<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td style=\"border: 1px solid #000000;\"><strong>Value<\/strong><\/td>\n<td style=\"border: 1px solid #000000;\"><strong>Effect<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000000;\">OFF\/FALSE<\/td>\n<td style=\"border: 1px solid #000000;\">No checks on blocks in user tablespaces. Semantic block checking is always enabled on SYSTEM tablespace.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000000;\">LOW<\/td>\n<td style=\"border: 1px solid #000000;\">Basic block header checks after block changes in memory.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000000;\">MEDIUM<\/td>\n<td style=\"border: 1px solid #000000;\">Same as LOW plus semantic block checking for all table blocks (except index organized tables).<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000000;\">FULL\/TRUE<\/td>\n<td style=\"border: 1px solid #000000;\">Same as MEDIUM plus semantic block checking on index blocks.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Semantic check consists in Oracle going through the data in the block to make sure it is logically self-consistent.<\/p>\n<p>As checks are performed when changes are performed on a block, the main interest of this feature is to get an internal error as soon as a corrupted block is detected to avoid wide-spread corruption from occurring: corrupted blocks are identified before they are marked corrupted.<\/p>\n<p>The main disadvantage is the potential overhead on the system, from 1% and up to 10% according to Oracle. In fact, it depends on the amount of update\/insert in the workload.<\/p>\n<p>This parameter can be set explicitly by a statement but it can be set by through the db_ultra_safe init parameter. Enabling db_ultra_safe will set db_block_checking automatically to MEDIUM or FULL depending on the value of\u00a0db_ultra_safe.<\/p>\n<ul>\n<li><a title=\"Oracle db_block_checking reference\" href=\"http:\/\/docs.oracle.com\/cd\/E11882_01\/server.112\/e25513\/initparams047.htm#REFRN10029\">db_block_checking reference<\/a><\/li>\n<li><a title=\"Oracle db_ultra_safe reference\" href=\"http:\/\/docs.oracle.com\/cd\/B28359_01\/server.111\/b28320\/initparams064.htm#REFRN10295\">db_ultra_safe reference<\/a><\/li>\n<\/ul>\n<h3>Test protocol<\/h3>\n<p>To get an idea of the impact of enabling db_block_checking, I measured the time to insert data in a table. The number of rows has been chosen to have a reference time while the feature was disabled for a simple loop insertion, superior than 10 minutes.<\/p>\n<p>I made the tests on the table DEPT in the schema SCOTT with two different methods extracted from a small data generator I wrote for an internal event. The first method uses a simple loop whereas the second uses a collection and the FORALL statement. We will see the difference of the impact when data is bulk processed.<\/p>\n<p>Here are the two procedure used to generate data:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">create or replace procedure generateDEPT(p_count IN number DEFAULT 50, p_start IN number DEFAULT 50, p_increment IN number DEFAULT 10)\nIS\ndepno number:=p_start;\nBEGIN\n\u00a0 IF p_count &gt; 0 THEN\n\u00a0 \u00a0 FOR x IN 1 .. p_count LOOP\n\u00a0 \u00a0 \u00a0 INSERT INTO DEPT VALUES (depno, 'DEPT_' || to_char(depno), 'CITY_' || to_char(depno));\n\u00a0 \u00a0 \u00a0 depno:=depno+p_increment;\n\u00a0 \u00a0 END LOOP;\n\u00a0 END IF;\nEND;\n\/\n \ncreate or replace procedure generateDEPT(p_count IN number DEFAULT 50, p_start IN number DEFAULT 50, p_increment IN number DEFAULT 10)\nIS\nv_col_limit CONSTANT number:=1000;\ndepno NUMBER;\nv_dept_gen PLS_INTEGER;\nv_dept_left PLS_INTEGER;\nv_dept_list dbms_sql.Number_Table;\nBEGIN\n\u00a0 \u00a0depno:=p_start;\n\u00a0 \u00a0v_dept_gen:=0;\n\u00a0 \u00a0v_dept_left:=p_count;\n\u00a0 \u00a0v_dept_list.DELETE;\n\u00a0 \u00a0WHILE v_dept_left &gt; 0\n\u00a0 \u00a0LOOP\n\u00a0 \u00a0 \u00a0 IF v_dept_left &lt;= v_col_limit THEN\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0v_dept_gen:=v_dept_left;\n\u00a0 \u00a0 \u00a0 ELSE\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0v_dept_gen:=v_col_limit;\n\u00a0 \u00a0 \u00a0 END IF;\n\u00a0 \u00a0 \u00a0 FOR x IN 1 .. v_dept_gen LOOP\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0v_dept_list(x):=depno;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0depno:=depno+p_increment;\n\u00a0 \u00a0 \u00a0 END LOOP;\n\u00a0 \u00a0 \u00a0 FORALL i IN v_dept_list.FIRST..v_dept_list.LAST\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0INSERT INTO DEPT VALUES (v_dept_list(i), 'DEPT_' || to_char(v_dept_list(i)), 'CITY_' || to_char(v_dept_list(i)));\n\u00a0 \u00a0 \u00a0 v_dept_left:=v_dept_left-v_dept_gen;\n\u00a0 \u00a0 \u00a0 v_dept_list.DELETE;\n\u00a0 \u00a0END LOOP;\nEND;\n\/<\/pre>\n<p>&nbsp;<\/p>\n<p>During the tests, database was in noarchivelog mode and, to avoid any caching surprise or issue, the environment was reset before each test, i. e. the schema scott is dropped, db_block_checking is set to the desired value and shared pool\/buffer cache is flushed. I used the package sf_timer from Steven Feuerstein based on\u00a0DBMS_UTILITY.get_cpu_time\u00a0to measure the execution time of the procedure.<\/p>\n<p>Here is the core of the test:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">set serveroutput on\nbegin\n\u00a0 \u00a0sf_timer.start_timer;\n\u00a0 \u00a0generateDEPT(8000000, 100, 1);\n\u00a0 \u00a0sf_timer.show_elapsed_time ('Generation time for db_block_checking=Value');\nEND;\n\/<\/pre>\n<p>Here is an example of the output:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">Generation time for db_block_checking=OFF\u00a0- Elapsed CPU : 693.75 seconds.\nPL\/SQL procedure successfully completed.<\/pre>\n<h3>Results<\/h3>\n<p>Time to insert 8000000 rows (in seconds)<\/p>\n<table style=\"border-color: #000000; border-width: 0px;\" border=\"0\">\n<tbody>\n<tr>\n<td style=\"border: 1px solid #000000;\"><\/td>\n<td style=\"border: 1px solid #000000;\">OFF<\/td>\n<td style=\"border: 1px solid #000000;\">MEDIUM<\/td>\n<td style=\"border: 1px solid #000000;\">FULL<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000000;\">loop generator<\/td>\n<td style=\"border: 1px solid #000000;\">693.75<\/td>\n<td style=\"border: 1px solid #000000;\">914.17<\/td>\n<td style=\"border: 1px solid #000000;\">1289.64<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000000;\">collection generator<\/td>\n<td style=\"border: 1px solid #000000;\">41.09<\/td>\n<td style=\"border: 1px solid #000000;\">49.18<\/td>\n<td style=\"border: 1px solid #000000;\">62.13<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>With these results, we can make three observations:<\/p>\n<ul>\n<li>The impact can be important: +85% for loop insert with FULL block checking.<\/li>\n<li>The difference between MEDIUM and FULL is more important than between OFF and MEDIUM.<\/li>\n<li>Bulk processing is 14 to 20 times faster than loop inserts. The impact of this feature will depends on how data is processed by the application.<\/li>\n<\/ul>\n<h3>Conclusion<\/h3>\n<p>Before enabling this feature, the logical consistency of the database should be checked with RMAN or DBVERIFY to be sure original data is not already corrupted. Also, due to the unpredictable impact on the application, this parameter should not be set on live production system without a validation on test\/qualification environment.<\/p>\n<p>I recommend setting db_block_checking to MEDIUM when creating a database. With this setting, the indexes are not checked by Oracle so the overhead is smaller but all data can be considered protected because indexes can be regenerated from the tables.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data can be corrupted in different ways, for example an I\/O issue when reading data from the storage or a memory issue when updating data. The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking.<\/p>\n<p>This posting will present this parameter and some tests to measure its impact on the database.<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198],"tags":[29,314,17,67,244],"type_dbi":[],"class_list":["post-2582","post","type-post","status-publish","format-standard","hentry","category-database-management","tag-blocks","tag-init-parameters","tag-oracle-11g","tag-performance","tag-workload"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Protecting an Oracle database from block corruption - dbi Blog<\/title>\n<meta name=\"description\" content=\"The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking. This posting will present this parameter and some tests to measure its impact on the database.\" \/>\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\/protecting-an-oracle-database-from-block-corruption\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Protecting an Oracle database from block corruption\" \/>\n<meta property=\"og:description\" content=\"The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking. This posting will present this parameter and some tests to measure its impact on the database.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2012-06-08T09:15:00+00:00\" \/>\n<meta name=\"author\" content=\"Nicolas Jardot\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nicolas Jardot\" \/>\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\\\/protecting-an-oracle-database-from-block-corruption\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/\"},\"author\":{\"name\":\"Nicolas Jardot\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0aa30f52275a132e9cc2c387708f84ed\"},\"headline\":\"Protecting an Oracle database from block corruption\",\"datePublished\":\"2012-06-08T09:15:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/\"},\"wordCount\":732,\"commentCount\":0,\"keywords\":[\"Blocks\",\"Init. parameters\",\"Oracle 11g\",\"Performance\",\"Workload\"],\"articleSection\":[\"Database management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/\",\"name\":\"Protecting an Oracle database from block corruption - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2012-06-08T09:15:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0aa30f52275a132e9cc2c387708f84ed\"},\"description\":\"The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking. This posting will present this parameter and some tests to measure its impact on the database.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/protecting-an-oracle-database-from-block-corruption\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Protecting an Oracle database from block corruption\"}]},{\"@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\\\/0aa30f52275a132e9cc2c387708f84ed\",\"name\":\"Nicolas Jardot\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/112c023c253239221e61a24d59db49d57b354e10da6e7c074cfff50e1b5a6dd8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/112c023c253239221e61a24d59db49d57b354e10da6e7c074cfff50e1b5a6dd8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/112c023c253239221e61a24d59db49d57b354e10da6e7c074cfff50e1b5a6dd8?s=96&d=mm&r=g\",\"caption\":\"Nicolas Jardot\"},\"description\":\"Nicolas Jardot is a senior consultant with more than nine years of experience in Oracle database infrastructure management and optimization. In addition to standard operations, he is specialized in the performance optimization and tuning of Oracle databases. He also has a strong knowledge of SQL language and has developed several PL\\\/SQL packages to simplify the administration of database applications. He also maintains the DMK_SQL package of dbi services\u2019 Database Management Kit. Nicolas is Oracle Certified Professional 11g\\\/12c and Oracle Certified Expert Performance Management and Tuning 12c and holds speeches around Oracle technologies in various conferences including Oracle OpenWorld and UKOUG. Over time, Nicolas has become increasingly interested in Cloud and automation technologies. He has been working for over two years on building and maintaining applications in AWS and operates a CI\\\/CD pipeline to provision and configure the infrastructure. Nicolas is also certified AWS Solution Architect Professional. Prior to dbi services, Nicolas Jardot was C++ developer on an application virtualization solution, which gave him a solid experience in virtualization and centralization of applications. Nicolas Jardot holds an Engineer\u2019s Degree in Computer Science from the University of Technology of Belfort-Montb\u00e9liard (F). His branch-related experience covers Pharma, Public Sector, Health, Real Estate, Automotive, etc.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/nicolas-jardot-762b9535\\\/\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/nicolas-jardot\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Protecting an Oracle database from block corruption - dbi Blog","description":"The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking. This posting will present this parameter and some tests to measure its impact on the database.","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\/protecting-an-oracle-database-from-block-corruption\/","og_locale":"en_US","og_type":"article","og_title":"Protecting an Oracle database from block corruption","og_description":"The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking. This posting will present this parameter and some tests to measure its impact on the database.","og_url":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/","og_site_name":"dbi Blog","article_published_time":"2012-06-08T09:15:00+00:00","author":"Nicolas Jardot","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nicolas Jardot","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/"},"author":{"name":"Nicolas Jardot","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0aa30f52275a132e9cc2c387708f84ed"},"headline":"Protecting an Oracle database from block corruption","datePublished":"2012-06-08T09:15:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/"},"wordCount":732,"commentCount":0,"keywords":["Blocks","Init. parameters","Oracle 11g","Performance","Workload"],"articleSection":["Database management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/","url":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/","name":"Protecting an Oracle database from block corruption - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2012-06-08T09:15:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0aa30f52275a132e9cc2c387708f84ed"},"description":"The db_block_checking parameter allows to change the behavior of an Oracle database concerning block checking. This posting will present this parameter and some tests to measure its impact on the database.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/protecting-an-oracle-database-from-block-corruption\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Protecting an Oracle database from block corruption"}]},{"@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\/0aa30f52275a132e9cc2c387708f84ed","name":"Nicolas Jardot","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/112c023c253239221e61a24d59db49d57b354e10da6e7c074cfff50e1b5a6dd8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/112c023c253239221e61a24d59db49d57b354e10da6e7c074cfff50e1b5a6dd8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/112c023c253239221e61a24d59db49d57b354e10da6e7c074cfff50e1b5a6dd8?s=96&d=mm&r=g","caption":"Nicolas Jardot"},"description":"Nicolas Jardot is a senior consultant with more than nine years of experience in Oracle database infrastructure management and optimization. In addition to standard operations, he is specialized in the performance optimization and tuning of Oracle databases. He also has a strong knowledge of SQL language and has developed several PL\/SQL packages to simplify the administration of database applications. He also maintains the DMK_SQL package of dbi services\u2019 Database Management Kit. Nicolas is Oracle Certified Professional 11g\/12c and Oracle Certified Expert Performance Management and Tuning 12c and holds speeches around Oracle technologies in various conferences including Oracle OpenWorld and UKOUG. Over time, Nicolas has become increasingly interested in Cloud and automation technologies. He has been working for over two years on building and maintaining applications in AWS and operates a CI\/CD pipeline to provision and configure the infrastructure. Nicolas is also certified AWS Solution Architect Professional. Prior to dbi services, Nicolas Jardot was C++ developer on an application virtualization solution, which gave him a solid experience in virtualization and centralization of applications. Nicolas Jardot holds an Engineer\u2019s Degree in Computer Science from the University of Technology of Belfort-Montb\u00e9liard (F). His branch-related experience covers Pharma, Public Sector, Health, Real Estate, Automotive, etc.","sameAs":["https:\/\/www.linkedin.com\/in\/nicolas-jardot-762b9535\/"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/nicolas-jardot\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2582","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\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=2582"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2582\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=2582"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=2582"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=2582"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=2582"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}