{"id":5852,"date":"2014-07-15T10:45:01","date_gmt":"2014-07-15T14:45:01","guid":{"rendered":"http:\/\/www.iri.com\/blog\/?p=5852"},"modified":"2019-03-20T08:27:06","modified_gmt":"2019-03-20T12:27:06","slug":"sql-loader-odbc-comparison","status":"publish","type":"post","link":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/","title":{"rendered":"Just How Fast is ODBC? A &#8220;Loaded&#8221; Comparison."},"content":{"rendered":"<p><strong> The Opening Question<\/strong><\/p>\n<p>ODBC gets a bad rap for speed sometimes &#8230; but should it?\u00a0You&#8217;d think from what&#8217;s posted online that ODBC is intrinsically\u00a0slow:<\/p>\n<p><a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/ScreenHunter_01-Aug.-14-12.21.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-5886 size-medium\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/ScreenHunter_01-Aug.-14-12.21-295x300.jpg\" alt=\"ODBC Speed Gripes\" width=\"295\" height=\"300\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/ScreenHunter_01-Aug.-14-12.21-295x300.jpg 295w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/ScreenHunter_01-Aug.-14-12.21.jpg 993w\" sizes=\"(max-width: 295px) 100vw, 295px\" \/><\/a><\/p>\n<p>Microsoft disagrees in the case of SQL Server. In <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms811006.aspx\" target=\"_blank\" rel=\"noopener\"><em>Using ODBC with Microsoft SQL Server<\/em><\/a>,\u00a0Amrish Kumar and Alan Brewer say ODBC is as good as native:<\/p>\n<blockquote>\n<h6 style=\"color: #2a2a2a;\"><em>One of the persistent rumors about ODBC is that it is inherently slower than a native DBMS API. This reasoning is based on the assumption that ODBC drivers must be implemented as an extra layer over a native DBMS API, translating the ODBC statements coming from the application into the native DBMS API functions and SQL syntax. This translation effort adds extra processing compared with having the application call directly to the native API. This assumption is true for some ODBC drivers implemented over a native DBMS API, but the Microsoft SQL\u00a0Server ODBC driver is not implemented this way. &#8230;\u00a0Microsoft&#8217;s testing has shown that the performance of ODBC-based and DB-Library\u2013based SQL\u00a0Server applications is roughly equal.<\/em><\/h6>\n<\/blockquote>\n<p style=\"color: #2a2a2a; text-align: left;\">According to Oracle, their ODBC driver, on average, runs only about 3% slower than native Oracle access. But their ODBC driver may not be yours, and your mileage will\u00a0vary.<\/p>\n<p>Our users often ask when it&#8217;s better\u00a0to use ODBC or an\u00a0off-line, flat-file\u00a0approach\u00a0to data handling\u00a0&#8212;\u00a0for which IRI is best known &#8212; during very large database (VLDB) operations like:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.iri.com\/solutions\/data-integration\/etl\" target=\"_blank\" rel=\"noopener\">ETL<\/a>\u00a0(extraction, transformation, and loading)<\/li>\n<li><a href=\"http:\/\/www.iri.com\/blog\/vldb-operations\/offline-reorg-wizard\/\" target=\"_blank\" rel=\"noopener\">offline reorgs<\/a><\/li>\n<li><a href=\"http:\/\/www.iri.com\/solutions\/data-and-database-migration\/database-migration\" target=\"_blank\" rel=\"noopener\">migration and replication<\/a><\/li>\n<li><a href=\"http:\/\/www.iri.com\/solutions\/data-masking\" target=\"_blank\" rel=\"noopener\">data masking<\/a><\/li>\n<li><a href=\"http:\/\/www.iri.com\/solutions\/test-data\/database-test-data\" target=\"_blank\" rel=\"noopener\">test data generation\/population\u00a0<\/a><\/li>\n<\/ul>\n<p style=\"text-align: left;\">Our general answer is that data volume should determine the data movement paradigm.\u00a0We set out to test that advice\u00a0with a simple database population (loading) benchmark.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Comparing\u00a0Two Paradigms<\/strong><\/p>\n<p>Note that here we are only looking at ODBC vs. bulk, file-based\u00a0data\u00a0movement, and not JDBC or other means of distributing\u00a0data, like Hadoop. We also did not consider other avenues touted to improve data acquisition, like NoSQL,\u00a0or delivery, like\u00a0Teradata FastLoad.<\/p>\n<p><em><br \/>\nODBC (Open Database Connectivity)<\/em><\/p>\n<p>ODBC provides a way for client programs to conveniently access a wide range of databases and\u00a0data sources\u00a0that are compatible with ODBC.<\/p>\n<p>ODBC accomplishes DBMS independence by using an ODBC driver as a translation layer between the application and the DBMS. The application uses ODBC functions through an ODBC driver manager with which it is linked, and the driver passes the query or update command to the DBMS.<\/p>\n<p>To populate\u00a0a table via\u00a0ODBC in IRI software\u00a0like the CoSort\u00a0<a href=\"http:\/\/www.iri.com\/products\/cosort\/sortcl\" target=\"_blank\" rel=\"noopener\">SortCL<\/a> program, specify the output process type as\u00a0ODBC.\u00a0A sample script targeting columns in a table,\u00a0rather than a file or procedure,\u00a0might\u00a0contain this\u00a0layout:<\/p>\n<pre>\/OUTFILE=\"QA.MILLION_TEST_NEW_ROW;DSN=OracleTwisterQA\"\r\n\u00a0  \/PROCESS=ODBC\r\n   \/ALIAS=QA_MILLION_TEST_NEW_ROW\r\n\u00a0     \/FIELD=(ACCTNUM, POSITION=1, SEPARATOR=\"|\", TYPE=ASCII)\r\n\u00a0\u00a0\u00a0   \/FIELD=(DEPTNO,\u00a0 POSITION=2, SEPARATOR=\"|\", TYPE=ASCII)\r\n  \u00a0\u00a0\u00a0 \/FIELD=(QUANTITY,\u00a0 POSITION=3, SEPARATOR=\"|\", TYPE=NUMERIC)\r\n\u00a0\u00a0  \u00a0 \/FIELD=(TRANSTYPE, POSITION=4, SEPARATOR=\"|\", TYPE=ASCII)\r\n\u00a0\u00a0\u00a0   \/FIELD=(TRANSDATE, POSITION=5, SEPARATOR=\"|\", TYPE=ISODATE)\r\n\u00a0\u00a0\u00a0   \/FIELD=(NAME, POSITION=6, SEPARATOR=\"|\", TYPE=ASCII)\r\n     \u00a0\/FIELD=(STREETADDRESS,\u00a0 POSITION=7, SEPARATOR=\"|\", TYPE=ASCII)\r\n\u00a0 \u00a0 \u00a0 \/FIELD=(STATE, POSITION=8, SEPARATOR=\"|\", TYPE=ASCII)\r\n\u00a0 \u00a0 \u00a0 \/FIELD=(CITY,\u00a0 POSITION=9, SEPARATOR=\"|\", TYPE=ASCII)<\/pre>\n<p>The default ODBC population behavior in SortCL within jobs for: IRI CoSort (bulk transforms and pre-load sorting),\u00a0IRI NextForm (DB migration &amp; replication), IRI FieldShield (DB data masking\u00a0&amp; encryption), IRI RowGen (DB test data generation), or IRI Voracity (all of the above) is \/APPEND, which adds rows to an existing table. Additional options are \/CREATE, for truncate and full insert, and \/UPDATE for selective insert.<\/p>\n<p><em><br \/>\nSQL*Loader\u00a0<\/em><\/p>\n<p>SQL*Loader is an Oracle database utility that loads data from an external (flat) file into an existing\u00a0table on the same system or across a network. SQL*Loader supports various target table formats, and can handle both\u00a0selective and multiple table loading.<\/p>\n<p>The data can be loaded from any text file and inserted into the database<i>.\u00a0<\/i>One can bulk load a table\u00a0from the shell\u00a0using the\u00a0sqlldr (sqlload on some platforms) command. Run it without\u00a0arguments to get a list of available parameters.<\/p>\n<p>In IRI ETL and reorg scenarios in which the flat-file data is <a href=\"http:\/\/www.iri.com\/blog\/vldb-operations\/high-speed-database-loading\/\" target=\"_blank\" rel=\"noopener\">pre-sorted<\/a> on the longest\u00a0index key of the target table, the load command syntax is:<\/p>\n<pre>C:\\IRI\\CoSort10&gt;sqlldr scott\/tiger control=ODBC_ONEMILLION_TEST.ctl DIRECT=TRUE<\/pre>\n<p>where the .ctl loader control\u00a0file contains:<\/p>\n<pre>INFILE 'C:\\IRI\\CoSort10\\workbench\\workspace\\CM\\twofiftym\u00a0ilfinalcm.out'\r\nAPPEND INTO TABLE ODBC_ONEMILLION_TEST\r\nREENABLE\r\nFIELDS TERMINATED BY \"|\"\r\n(\r\nACCTNUM NULLIF(ACCTNUM=\"{NULL}\") ,\r\nDEPTNO NULLIF(DEPTNO=\"{NULL}\") ,\r\nQUANTITY NULLIF(QUANTITY=\"{NULL}\") ,\r\nTRANSTYPE NULLIF(TRANSTYPE=\"{NULL}\") ,\r\nTRANSDATE NULLIF(TRANSDATE=\"{NULL}\") ,\r\nNAME NULLIF(NAME=\"{NULL}\") ,\r\nSTREETADDRESS NULLIF(STREETADDRESS=\"{NULL}\") ,\r\nSTATE NULLIF(STATE=\"{NULL}\") ,\r\nCITY NULLIF(CITY=\"{NULL}\")<\/pre>\n<p>The graph below compares the average time it took for\u00a0Oracle XE 11gR2\u00a0on a Windows server to be populated with five different pre-sorted files using both\u00a0ODBC insertions and\u00a0SQL*Loader:<a href=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5906\" src=\"http:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\" alt=\"odbc-graph\" width=\"577\" height=\"353\" srcset=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png 577w, https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph-300x183.png 300w\" sizes=\"(max-width: 577px) 100vw, 577px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<table  class=\" aligncenter table table-hover\"  style=\"height: 140px;\" border=\"0\" width=\"439\">\n<tbody>\n<tr>\n<td><b># of Records<\/b><\/td>\n<td><b>DB Population via SQL*Loader<\/b><\/td>\n<td><b>DB Population via ODBC<\/b><\/td>\n<\/tr>\n<tr>\n<td>2.5 million<\/td>\n<td>10.25 seconds<\/td>\n<td>58.25 seconds<\/td>\n<\/tr>\n<tr>\n<td>2 million<\/td>\n<td>6.25 seconds<\/td>\n<td>24.25 seconds<\/td>\n<\/tr>\n<tr>\n<td>1 million<\/td>\n<td>5.25 seconds<\/td>\n<td>11.5 seconds<\/td>\n<\/tr>\n<tr>\n<td>1\/2 million<\/td>\n<td>4 seconds<\/td>\n<td>5.5 seconds<\/td>\n<\/tr>\n<tr>\n<td>1\/4 million<\/td>\n<td>2.75 seconds<\/td>\n<td>4.25 seconds<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Conclusion for IRI\u00a0Users<\/strong><\/p>\n<p>We found that <a href=\"http:\/\/www.iri.com\/products\/fieldshield\" target=\"_blank\" rel=\"noopener\">IRI\u00a0FieldShield<\/a> users are typically fine with ODBC because it&#8217;s more convenient and fast enough for dynamic data masking and static data masking of tables with fewer than a million rows. The same is true for less-than-huge data mapping, federation, or reporting operations in <a href=\"http:\/\/www.iri.com\/products\/cosort\" target=\"_blank\" rel=\"noopener\">IRI CoSort<\/a> or <a href=\"http:\/\/www.iri.com\/products\/nextform\" target=\"_blank\" rel=\"noopener\">IRI NextForm<\/a>.<\/p>\n<p>For bulk ETL\u00a0and\u00a0reorg operations in <a href=\"https:\/\/www.iri.com\/products\/voracity\">IRI Voracity<\/a>, however, what continues to work best are these supported components:<\/p>\n<ol>\n<li><a href=\"http:\/\/www.iri.com\/products\/fact\" target=\"_blank\" rel=\"noopener\">IRI FACT<\/a>\u00a0(Fast Extract) for unloads using native drivers like OCI<\/li>\n<li><a href=\"http:\/\/www.iri.com\/products\/cosort\" target=\"_blank\" rel=\"noopener\">IRI CoSort<\/a> for big data transformation and pre-load sorting [or <a href=\"http:\/\/www.iri.com\/products\/rowgen\" target=\"_blank\" rel=\"noopener\">IRI RowGen<\/a> for sorted,\u00a0referentially correct test\u00a0data generation]<\/li>\n<li>Your DB load utility for bulk, direct path loads<\/li>\n<\/ol>\n<p>So shy of\u00a0complex and costly paradigms like NoSQL and Hadoop\u00a0&#8212;\u00a0the trusty <a href=\"https:\/\/www.iri.com\/solutions\/data-integration\/etl\/flat-file-etl\">flat-file method<\/a> is still the way to go.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Opening Question ODBC gets a bad rap for speed sometimes &#8230; but should it?\u00a0You&#8217;d think from what&#8217;s posted online that ODBC is intrinsically\u00a0slow: Microsoft disagrees in the case of SQL Server. In Using ODBC with Microsoft SQL Server,\u00a0Amrish Kumar and Alan Brewer say ODBC is as good as native: One of the persistent rumors<\/p>\n<div><a class=\"btn-filled btn\" href=\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\" title=\"Just How Fast is ODBC? A &#8220;Loaded&#8221; Comparison.\">Read More<\/a><\/div>\n","protected":false},"author":53,"featured_media":5906,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[31,1,91,29,3],"tags":[44,654,648,651,100,545,520,647,650,76,75,649,327,492,652,653,271],"class_list":["post-5852","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-migration","category-data-transformation2","category-iri-workbench","category-test-data","category-vldb-operations","tag-cosort","tag-data-mapping","tag-dbms-api","tag-dynamic-data-masking","tag-etl","tag-federation","tag-iri-fieldshield","tag-microsoft-sql-server","tag-migrations","tag-nextform","tag-odbc","tag-reorgs","tag-reporting","tag-sql-loader","tag-static-data-masking","tag-tables","tag-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v23.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Just How Fast is ODBC? A &quot;Loaded&quot; Comparison. - IRI<\/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.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Just How Fast is ODBC? A &quot;Loaded&quot; Comparison.\" \/>\n<meta property=\"og:description\" content=\"The Opening Question ODBC gets a bad rap for speed sometimes &#8230; but should it?\u00a0You&#8217;d think from what&#8217;s posted online that ODBC is intrinsically\u00a0slow: Microsoft disagrees in the case of SQL Server. In Using ODBC with Microsoft SQL Server,\u00a0Amrish Kumar and Alan Brewer say ODBC is as good as native: One of the persistent rumorsRead More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\" \/>\n<meta property=\"og:site_name\" content=\"IRI\" \/>\n<meta property=\"article:published_time\" content=\"2014-07-15T14:45:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-20T12:27:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\" \/>\n\t<meta property=\"og:image:width\" content=\"577\" \/>\n\t<meta property=\"og:image:height\" content=\"353\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Chaitali Mitra\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chaitali Mitra\" \/>\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.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\"},\"author\":{\"name\":\"Chaitali Mitra\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/9bae14a309616863b027c2d56f532caf\"},\"headline\":\"Just How Fast is ODBC? A &#8220;Loaded&#8221; Comparison.\",\"datePublished\":\"2014-07-15T14:45:01+00:00\",\"dateModified\":\"2019-03-20T12:27:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\"},\"wordCount\":832,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\",\"keywords\":[\"CoSort\",\"data mapping\",\"DBMS API\",\"dynamic data masking\",\"ETL\",\"federation\",\"IRI FieldShield\",\"Microsoft SQL Server\",\"migrations\",\"NextForm\",\"ODBC\",\"reorgs\",\"reporting\",\"SQL Loader\",\"static data masking\",\"tables\",\"testing\"],\"articleSection\":[\"Data Migration\",\"Data Transformation\",\"IRI Workbench\",\"Test Data\",\"VLDB\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\",\"url\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\",\"name\":\"Just How Fast is ODBC? A \\\"Loaded\\\" Comparison. - IRI\",\"isPartOf\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\",\"datePublished\":\"2014-07-15T14:45:01+00:00\",\"dateModified\":\"2019-03-20T12:27:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png\",\"width\":577,\"height\":353},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.iri.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Just How Fast is ODBC? A &#8220;Loaded&#8221; Comparison.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.iri.com\/blog\/#website\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"name\":\"IRI\",\"description\":\"Total Data Management Blog\",\"publisher\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.iri.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.iri.com\/blog\/#organization\",\"name\":\"IRI\",\"url\":\"https:\/\/www.iri.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"contentUrl\":\"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png\",\"width\":750,\"height\":206,\"caption\":\"IRI\"},\"image\":{\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/9bae14a309616863b027c2d56f532caf\",\"name\":\"Chaitali Mitra\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/95a11f3d0b709c00df3262bab0152f3a?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/95a11f3d0b709c00df3262bab0152f3a?s=96&d=blank&r=g\",\"caption\":\"Chaitali Mitra\"},\"sameAs\":[\"http:\/\/www.iri.com\"],\"url\":\"https:\/\/www.iri.com\/blog\/author\/chaitalim\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Just How Fast is ODBC? A \"Loaded\" Comparison. - IRI","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.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/","og_locale":"en_US","og_type":"article","og_title":"Just How Fast is ODBC? A \"Loaded\" Comparison.","og_description":"The Opening Question ODBC gets a bad rap for speed sometimes &#8230; but should it?\u00a0You&#8217;d think from what&#8217;s posted online that ODBC is intrinsically\u00a0slow: Microsoft disagrees in the case of SQL Server. In Using ODBC with Microsoft SQL Server,\u00a0Amrish Kumar and Alan Brewer say ODBC is as good as native: One of the persistent rumorsRead More","og_url":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/","og_site_name":"IRI","article_published_time":"2014-07-15T14:45:01+00:00","article_modified_time":"2019-03-20T12:27:06+00:00","og_image":[{"width":577,"height":353,"url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png","type":"image\/png"}],"author":"Chaitali Mitra","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Chaitali Mitra","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#article","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/"},"author":{"name":"Chaitali Mitra","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/9bae14a309616863b027c2d56f532caf"},"headline":"Just How Fast is ODBC? A &#8220;Loaded&#8221; Comparison.","datePublished":"2014-07-15T14:45:01+00:00","dateModified":"2019-03-20T12:27:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/"},"wordCount":832,"commentCount":0,"publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png","keywords":["CoSort","data mapping","DBMS API","dynamic data masking","ETL","federation","IRI FieldShield","Microsoft SQL Server","migrations","NextForm","ODBC","reorgs","reporting","SQL Loader","static data masking","tables","testing"],"articleSection":["Data Migration","Data Transformation","IRI Workbench","Test Data","VLDB"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/","url":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/","name":"Just How Fast is ODBC? A \"Loaded\" Comparison. - IRI","isPartOf":{"@id":"https:\/\/www.iri.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage"},"image":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png","datePublished":"2014-07-15T14:45:01+00:00","dateModified":"2019-03-20T12:27:06+00:00","breadcrumb":{"@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#primaryimage","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png","width":577,"height":353},{"@type":"BreadcrumbList","@id":"https:\/\/www.iri.com\/blog\/data-transformation2\/sql-loader-odbc-comparison\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.iri.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Just How Fast is ODBC? A &#8220;Loaded&#8221; Comparison."}]},{"@type":"WebSite","@id":"https:\/\/www.iri.com\/blog\/#website","url":"https:\/\/www.iri.com\/blog\/","name":"IRI","description":"Total Data Management Blog","publisher":{"@id":"https:\/\/www.iri.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iri.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.iri.com\/blog\/#organization","name":"IRI","url":"https:\/\/www.iri.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","contentUrl":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2019\/02\/iri-logo-total-data-management-small-1.png","width":750,"height":206,"caption":"IRI"},"image":{"@id":"https:\/\/www.iri.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/9bae14a309616863b027c2d56f532caf","name":"Chaitali Mitra","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.iri.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/95a11f3d0b709c00df3262bab0152f3a?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/95a11f3d0b709c00df3262bab0152f3a?s=96&d=blank&r=g","caption":"Chaitali Mitra"},"sameAs":["http:\/\/www.iri.com"],"url":"https:\/\/www.iri.com\/blog\/author\/chaitalim\/"}]}},"jetpack_featured_media_url":"https:\/\/www.iri.com\/blog\/wp-content\/uploads\/2014\/08\/odbc-graph.png","_links":{"self":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/5852"}],"collection":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/users\/53"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/comments?post=5852"}],"version-history":[{"count":55,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/5852\/revisions"}],"predecessor-version":[{"id":12713,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/posts\/5852\/revisions\/12713"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media\/5906"}],"wp:attachment":[{"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/media?parent=5852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/categories?post=5852"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iri.com\/blog\/wp-json\/wp\/v2\/tags?post=5852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}