{"id":11581,"date":"2018-08-22T06:00:12","date_gmt":"2018-08-22T04:00:12","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/"},"modified":"2018-08-22T06:00:12","modified_gmt":"2018-08-22T04:00:12","slug":"the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/","title":{"rendered":"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?"},"content":{"rendered":"<p>Holidays is over and let\u2019s start working with a funny write-up. I was reading interesting stuff done by my colleagues Franck Pachot and Daniel Westermann about reducing the size of <a href=\"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb\/\" target=\"_blank\" rel=\"noopener\">Oracle<\/a> \/ <a href=\"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-postgresql\/\" target=\"_blank\" rel=\"noopener\">PostgreSQL<\/a> binaries at the minimum in the context of a Docker images. I was curious what can be done on SQL Server side on Linux environment but just keep in mind that some operations performed in this post are probably not supported in production.<\/p>\n<p>Firstly, remember that SQL Server installation is package-oriented on Linux in a such way we may choose only installing packages that include the SQL Server engine as well as the basic client tools as SQLCMD. In other words, we just need to install the mssql-server-* (engine), mssql-tools-* (CLI tools) and their dependencies leading to the following result in my case (SQL Server 2017 RTM-CU9-GDR and CentOS 7):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ du -sh \/opt\/mssql \/u01\/sqlserverdata\/mssqlserver \/var\/opt\/mssql\/ \/usr\/share\/doc\/mssql-server\/\n891M    \/opt\/mssql\n52M     \/u01\/sqlserverdata\/mssqlserver\n12M     \/var\/opt\/mssql\/\n848K    \/usr\/share\/doc\/mssql-server\/<\/pre>\n<p>&nbsp;<\/p>\n<p>A total size of 956MB.<\/p>\n<p>In my context the following folders contain folders and files related to my SQL Server instance:<\/p>\n<ul>\n<li><strong>\/opt\/mssql<\/strong> hierarchy folder contains all the SQL Server engine binaries and libraries<\/li>\n<li><strong>\/u01\/sqlserverdata\/mssqlserver<\/strong> contains all database system files (master, msdb, model, tempdb)<\/li>\n<li><strong>\/var\/opt\/mssql<\/strong> contains SQL Server and SQL Agent log files, default extended event session files, default trace files and the machine.key<\/li>\n<li><strong>\/usr\/share\/doc\/mssql-server\/ <\/strong>contains some license text files<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Firstly, we can remove all files from \/usr\/share\/doc\/mssql-server\/ with a disk space reduction of 848KB. One another easy way to continue reducing disk space consumed by SQL Server in \/var\/opt\/mssql\/log is to disable telemetry \u2026<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo \/opt\/mssql\/bin\/mssql-conf set telemetry.customerfeedback false<\/pre>\n<p>&nbsp;<\/p>\n<p>\u2026 extended events and the default trace as well \u2026<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">DROP EVENT SESSION [system_health] ON SERVER \nGO\nDROP EVENT SESSION [telemetry_xevents] ON SERVER \nGO\nDROP EVENT SESSION [AlwaysOn_health] ON SERVER \nGO\n\nEXEC sp_configure 'default trace enabled', 0;\nGO\nRECONFIGURE;\nGO<\/pre>\n<p>&nbsp;<\/p>\n<p>\u2026 and drop their related files on disk then.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo rm -f \/var\/opt\/mssql\/log\/*.trc\n$ sudo rm -f \/var\/opt\/mssql\/log\/*.xel<\/pre>\n<p>&nbsp;<\/p>\n<p>~ another 4 MB saved \u2026 not a really a good job, isn\u2019t it? \ud83d\ude42<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ du -sh \/opt\/mssql \/u01\/sqlserverdata\/mssqlserver \/var\/opt\/mssql\/\n891M    \/opt\/mssql\n52M     \/u01\/sqlserverdata\/mssqlserver\n8.8M    \/var\/opt\/mssql\/\n0       \/usr\/share\/doc\/mssql-server\/<\/pre>\n<p>&nbsp;<\/p>\n<p>By taking a look at the other folders in the \/var\/opt\/mssql hierarchy seems to confirm we can\u2019t do more. Let\u2019s try to cleanup other MSSQL related folders.<\/p>\n<p>We may try now to reduce the size of the system databases but these files will probably grow over the time and moving them on a persistent volume storage with containers is an easy task in a such way we may exclude them from the equation.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo du -sh \/u01\/sqlserverdata\/mssqlserver\/*\n4.0M    \/u01\/sqlserverdata\/mssqlserver\/master.mdf\n8.0M    \/u01\/sqlserverdata\/mssqlserver\/modellog.ldf\n8.0M    \/u01\/sqlserverdata\/mssqlserver\/model.mdf\n15M     \/u01\/sqlserverdata\/mssqlserver\/msdbdata.mdf\n768K    \/u01\/sqlserverdata\/mssqlserver\/msdblog.ldf\n8.0M    \/u01\/sqlserverdata\/mssqlserver\/tempdb.mdf\n8.0M    \/u01\/sqlserverdata\/mssqlserver\/templog.ldf<\/pre>\n<p>&nbsp;<\/p>\n<p>Another 52MB. Most of the work could be done in the \/opt\/mssql hierarchy folder with both SQL Server binaries and libraries.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo du -sh \/opt\/mssql\/* | sort -r\n862M    \/opt\/mssql\/lib\n29M     \/opt\/mssql\/bin<\/pre>\n<p>&nbsp;<\/p>\n<p>The above output indicates that the SQL Server binaries size is rather small compared to the related libraries. As Franck and Daniel, I attempted to execute a strip command against SQL Server binaries and libraries but <strong>\/! keep in mind this operation is probably not supported by Microsoft. \/!<\/strong><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo strip \/opt\/mssql\/bin\/*\nstrip:\/opt\/mssql\/bin\/compress-dump.sh: File format not recognized\nstrip:\/opt\/mssql\/bin\/crash-support-functions.sh: File format not recognized\nstrip:\/opt\/mssql\/bin\/generate-sql-dump.sh: File format not recognized\nstrip:\/opt\/mssql\/bin\/handle-crash.sh: File format not recognized\nstrip:\/opt\/mssql\/bin\/mssql-conf: File format not recognized\n$ sudo strip \/opt\/mssql\/lib\/*\nstrip: Warning: '\/opt\/mssql\/lib\/loc' is not an ordinary file\nstrip: Warning: '\/opt\/mssql\/lib\/mssql-conf' is not an ordinary file\nstrip:\/opt\/mssql\/lib\/secforwarderxplat.sfp: File format not recognized\nstrip:\/opt\/mssql\/lib\/sqlagent.sfp: File format not recognized\nstrip:\/opt\/mssql\/lib\/sqlservr.sfp: File format not recognized\nstrip:\/opt\/mssql\/lib\/system.certificates.sfp: File format not recognized\nstrip:\/opt\/mssql\/lib\/system.common.sfp: File format not recognized\nstrip:\/opt\/mssql\/lib\/system.netfx.sfp: File format not recognized\nstrip:\/opt\/mssql\/lib\/system.sfp: File format not recognized<\/pre>\n<p>&nbsp;<\/p>\n<p>The below output was beyond my expectation but looking further, the size reduction concerns only <em>paldumper<\/em> in <em>\/opt\/mssql\/bin\/<\/em> (27MB to 1.6MB). Other executables remain unchanged. Some other Linux dynamic shared libraries as libc++abi.so.1 (from 2.5MB to 384KB), libunwind.so.8 (from 368KB to 48KB) or libsqlvdi.so (from 348KB to 48KB).<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo du -sh \/opt\/mssql\/* | sort -r\n857M    \/opt\/mssql\/lib\n2.9M    \/opt\/mssql\/bin<\/pre>\n<p>&nbsp;<\/p>\n<p>Another 31MB. That\u2019s said, restarting my SQL Server instance remained successful and I was able to connect to it. I think it could be safe to test the generation of a dump but for now let\u2019s consider that it does not interfere with the correct execution of the SQL Server engine&#8230;<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo systemctl restart mssql-server\n\n$ sqlcmd -S localhost -U sa -P XXXXX -Q\"SELECT @@VERSION\"\n                                                                                                                                                                                                                                        \n------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nMicrosoft SQL Server 2017 (RTM-CU9-GDR) (KB4293805) - 14.0.3035.2 (X64)\n        Jul  6 2018 18:24:36\n        Copyright (C) 2017 Microsoft Corporation\n        Developer Edition (64-bit) on Linux (CentOS Linux 7 (Core))<\/pre>\n<p>&nbsp;<\/p>\n<p>However, the biggest remaining part is about SQL Server files with sfp extension as shown below.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo du -sh \/opt\/mssql\/lib\/* | sort -hr\n370M    \/opt\/mssql\/lib\/sqlservr.sfp\n304M    \/opt\/mssql\/lib\/system.netfx.sfp\n158M    \/opt\/mssql\/lib\/system.common.sfp\n15M     \/opt\/mssql\/lib\/sqlagent.sfp\n8.3M    \/opt\/mssql\/lib\/system.sfp\n1.6M    \/opt\/mssql\/lib\/system.certificates.sfp\n652K    \/opt\/mssql\/lib\/libc++.so.1\n384K    \/opt\/mssql\/lib\/mssql-conf\n304K    \/opt\/mssql\/lib\/libc++abi.so.1\n48K     \/opt\/mssql\/lib\/secforwarderxplat.sfp\n48K     \/opt\/mssql\/lib\/libunwind.so.8\n48K     \/opt\/mssql\/lib\/libsqlvdi.so\n44K     \/opt\/mssql\/lib\/loc<\/pre>\n<p>&nbsp;<\/p>\n<p>Files with sfp extension are not supported by the strip command (see above) and it turns out these files are packed archive and are part of the &#8220;<a href=\"https:\/\/cloudblogs.microsoft.com\/sqlserver\/2016\/12\/16\/sql-server-on-linux-how-introduction\/\">SQL Platform Abstraction Layer<\/a>&#8221; (or SQLPAL) that hosts the operating system in a library (aka Drawbridge Library OS). These files are used to load SQL Server and its dependent programs and DLLs to run under SQLPAL.<\/p>\n<p>We may dig into these packed archives by using the <strong><em>sfpack<\/em><\/strong> tool (available on <a href=\"https:\/\/github.com\/nta\/sfpack\">GitHub<\/a>) that include a lot of what we may recognize as windows files. Here some of them:<\/p>\n<ul>\n<li>.exe files<\/li>\n<\/ul>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ egrep *.exe sqlservr.sfp.txt | head -n 10\n\/opt\/mssql\/lib\/sqlservr\/Content\/sqlservr.exe.lnx.hiv\n\/opt\/mssql\/lib\/sqlservr\/Content\/sqlservr.exe.win.hiv\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/sqlcmd.exe\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/useraccounttool.exe\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/sqlceip.exe.config\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/SqlDumper.exe\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/reg.exe\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/rep.exe\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/OSQL.exe\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/sqlservr.exe.config<\/pre>\n<p>&nbsp;<\/p>\n<ul>\n<li>.dll library files<\/li>\n<\/ul>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ egrep *.dll sqlservr.sfp.txt | head -n 10\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/sqlsatellite.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/SQLOS.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/pidgenx.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/cpprest120_2_8.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/hadrres.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/msvcr100.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/autoadmin.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/sqlboot.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/sqlaccess.dll\n\/opt\/mssql\/lib\/sqlservr\/Content\/binn\/qds.dll<\/pre>\n<p>&nbsp;<\/p>\n<p>According to the <a href=\"https:\/\/github.com\/thinkcz\/DrawBridge\">GitHub documentation<\/a> dbpatch files are binary patch files to their respective siblings with the same name without any syscalls instructions from binaries like ntdll.dll, win32k.sys etc \u2026<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ grep dbpatch   system.sfp.txt\n\/opt\/mssql\/lib\/system\/Content\/Windows\/System32\/DkDll_2.dll.dbpatch\n\/opt\/mssql\/lib\/system\/Content\/Windows\/System32\/DkDll.dll.dbpatch\n\/opt\/mssql\/lib\/system\/Content\/Windows\/System32\/sqlpal.dll.dbpatch\n\/opt\/mssql\/lib\/system\/Content\/Windows\/System32\/DkDll_4.dll.dbpatch\n\/opt\/mssql\/lib\/system\/Content\/Windows\/System32\/DkDll_3.dll.dbpatch\n\/opt\/mssql\/lib\/system\/Content\/Windows\/System32\/DkDll_1.dll.dbpatch\n\n$ grep dbpatch system.common.sfp.txt\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/win32kfull.sys.dbpatch\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/ntdll.dll.dbpatch\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/win32u.dll.dbpatch\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/win32kbase.sys.dbpatch\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/Drivers\/msrpc.sys.dbpatch\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/Drivers\/ksecdd.sys.dbpatch\n\/opt\/mssql\/lib\/system.common\/Content\/Windows\/System32\/Drivers\/cng.sys.dbpatch<\/pre>\n<p>&nbsp;<\/p>\n<p>Well that would be definitely lead to another interesting write-up but for now I believe this funny work seems to be over because reducing the size of these packed archives is out of our control (at least in a supported way as far as I know). So, the minimum final size I may get would be 869.7MB. I didn\u2019t manage to significantly reduce the size by myself but my feeling is there is some room and optimizations that can be done in the SQLPAL layer by Microsoft. Let\u2019s see in the future!<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">$ sudo du -sh \/opt\/mssql \/u01\/sqlserverdata\/mssqlserver \/var\/opt\/mssql\/\n860M    \/opt\/mssql\n9.7M    \/var\/opt\/mssql\/<\/pre>\n<p>&nbsp;<\/p>\n<p>See you!<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Holidays is over and let\u2019s start working with a funny write-up. I was reading interesting stuff done by my colleagues Franck Pachot and Daniel Westermann about reducing the size of Oracle \/ PostgreSQL binaries at the minimum in the context of a Docker images. I was curious what can be done on SQL Server side [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[73,51,1443],"type_dbi":[],"class_list":["post-11581","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-linux","tag-sql-server","tag-sqlpal"],"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>The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?<\/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\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?\" \/>\n<meta property=\"og:description\" content=\"Holidays is over and let\u2019s start working with a funny write-up. I was reading interesting stuff done by my colleagues Franck Pachot and Daniel Westermann about reducing the size of Oracle \/ PostgreSQL binaries at the minimum in the context of a Docker images. I was curious what can be done on SQL Server side [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-22T04:00:12+00:00\" \/>\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=\"8 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\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?\",\"datePublished\":\"2018-08-22T04:00:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/\"},\"wordCount\":817,\"commentCount\":0,\"keywords\":[\"Linux\",\"SQL Server\",\"SQLPAL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/\",\"name\":\"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2018-08-22T04:00:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?\"}]},{\"@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":"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?","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\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/","og_locale":"en_US","og_type":"article","og_title":"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?","og_description":"Holidays is over and let\u2019s start working with a funny write-up. I was reading interesting stuff done by my colleagues Franck Pachot and Daniel Westermann about reducing the size of Oracle \/ PostgreSQL binaries at the minimum in the context of a Docker images. I was curious what can be done on SQL Server side [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/","og_site_name":"dbi Blog","article_published_time":"2018-08-22T04:00:12+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?","datePublished":"2018-08-22T04:00:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/"},"wordCount":817,"commentCount":0,"keywords":["Linux","SQL Server","SQLPAL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/","url":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/","name":"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2018-08-22T04:00:12+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/the-size-of-oracle-home-from-9gb-to-600mb-what-about-sql-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"The size of Oracle Home: from 9GB to 600MB \u2013 What about SQL Server?"}]},{"@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\/11581","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=11581"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/11581\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=11581"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=11581"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=11581"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=11581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}