{"id":693,"date":"2010-05-06T15:01:00","date_gmt":"2010-05-06T15:01:00","guid":{"rendered":"\/blogs\/paul\/post\/Benchmarking-Introducing-SSDs-(Part-1-not-overloaded-log-file-array).aspx"},"modified":"2015-06-22T16:41:21","modified_gmt":"2015-06-22T23:41:21","slug":"benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/","title":{"rendered":"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array)"},"content":{"rendered":"<p>\n<font face=\"verdana,geneva\" size=\"2\">Well it&#39;s been&nbsp;almost 6 weeks&nbsp;since my last benchmarking blog post as I got side-tracked with the <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/category\/misconceptions\/\"><font face=\"verdana,geneva\" size=\"2\">Myth-a-Day<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> series and doing real work for clients :-) <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">In the <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/category\/benchmarking\/\"><font face=\"verdana,geneva\" size=\"2\">benchmarking series<\/font><\/a><font face=\"verdana,geneva\" size=\"2\"> I&#39;ve been doing, I&#39;ve been tuning the hardware we have here at home so I can start running some backup and other tests. In the last post I&#39;d finally figured out how to tune my networking gear so the performance to my iSCSI arrays didn&#39;t suck &#8211; see <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-1-tb-table-population-part-5-network-optimization-again\/\"><font face=\"verdana,geneva\" size=\"2\">Benchmarking: 1-TB table population (part 5: network optimization again)<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Now I&#39;ve decided that instead of using a 1-TB data set, I&#39;m going to use a 100-GB data set so I don&#39;t have to wait 6 hours for each test to finish, it also means that I can start to make use of the SSDs that the nice folks at Fusion-io sent me to test out (sorry guys &#8211; I did say it would be a while until I got around to it!). See <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/new-hardware-to-play-with-fusion-io-ssds\/\"><font face=\"verdana,geneva\" size=\"2\">New hardware to play with: Fusion-io SSDs<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">. I&#39;ve got two 640-GB cards but I can only install one right now as I need the other PCI-E slot for the NIC card so I can continue to make comparisons with the iSCSI gear without compromising network performance. Then I&#39;ll move on to some pure iSCSI vs pure SSD tests. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">I&#39;ve been starting to discuss SSDs a lot more in the classes that I teach and there&#39;s some debate over where to put an SSD if you can afford one. I&#39;ve heard many people say that using them for transaction logs and\/or tempdb is the best use of them. We all know what the real answer is though, don&#39;t we &#8211; that&#39;s right &#8211; IT DEPENDS! <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\"><font size=\"2\"><strong>When to consider SSDs?<\/strong> <\/font><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">An SSD effectively removes the variability in latency\/seek-time that you experience with traditional disks, and does best for random read\/write workloads compared to sequential ones (I&#39;m not going to regurgitate all the specs on the various drives &#8211; Google is your friend). Now, for *any* overwhelmed I\/O subsystem, putting an SSD in there that removes some of the wait time for each IO is probably going to speed things up and lead to a workload performance boost &#8211; but is that the *best* use of an SSD? Or, in fact, is that an appropriate use of hardware budget? <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">If you have an overwhelmed I\/O subsystem, I&#39;d say there are two cases you fall into: <\/font>\n<\/p>\n<ol>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">SQL Server is doing more I\/Os than it has to because the query workload has not been tuned <\/font>\n\t<\/div>\n<ol>\n<li>\n<div>\n\t\t<font face=\"verdana,geneva\" size=\"2\">You can tune the queries <\/font>\n\t\t<\/div>\n<\/li>\n<li>\n<div>\n\t\t<font face=\"verdana,geneva\" size=\"2\">You can&#39;t do anything about the queries but you can add more memory <\/font>\n\t\t<\/div>\n<\/li>\n<li>\n<div>\n\t\t<font face=\"verdana,geneva\" size=\"2\">You can&#39;t to anything about the queries and you can&#39;t add more memory <\/font>\n\t\t<\/div>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">The query workload has been tuned, and the I\/O subsystem is still overwhelmed. <\/font>\n\t<\/div>\n<\/li>\n<\/ol>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">I&#39;d say that case #2 is when you want to start looking at upgrading the I\/O subsystem, whether with SSDs or not. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">If you&#39;re in case #1, there are three sub-cases: <\/font>\n<\/p>\n<ol>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">You can tune the queries <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">You can&#39;t do anything about the queries but you can add more memory <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">You can&#39;t to anything about the queries and you can&#39;t add more memory <\/font>\n\t<\/div>\n<\/li>\n<\/ol>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">If you&#39;re in #1.1, go tune the queries first before dropping a bunch of money on hardware. Hardware will only get you so far &#8211; sooner or later your workload will scale past the capabilities of the hardware and you&#39;ll be in the same situation. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">If you&#39;re in #1.2, consider giving SQL Server more memory to use for its buffer pool so it can hold more of your workload in memory and cut down on I\/Os that way. This is going to be cheaper than buying SSDs. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">If you&#39;re in case #1.3, you&#39;re in the same boat as for case #2. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">Now you might want to start considering SSDs, as well as more traditional I\/O subsystems. But what to put on it? Again, any overwhelmed I\/O subsystem will benefit from an SSD, but only if you put it in the right place.<\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">I have some clients who are using SSDs because they can&#39;t connect any more storage to their systems and this gives them a lot of flexibility without the complexity of higher-end storage systems. Others are thinking of SSDs as a greener alternative to traditional spinning disks. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The other thing to consider is redundancy. A 640-GB SSD card presents itself as 2 x 320-GB drives when installed in the OS. As you know, I&#39;m big into availability so to start with I&#39;m going to use these as a 320-GB RAID-1 array (not truly redundant as they&#39;re both in the same PCI-E slot &#8211; but I can&#39;t use both PCI-E slots for SSDs yet). I need to make sure that if a drive fails, I don&#39;t lose the ability to keep my workload going. This is what many people forget &#8211; just because you have an SSD, doesn&#39;t mean you should compromise redundancy. Now don&#39;t get me wrong, I&#39;m not saying anything here that implies SSDs are any more likely to fail than any other technology &#8211; but it&#39;s a drive, and prudence dictates that I get some redundancy in there. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\"><font size=\"2\"><strong>The first test: not overwhelmed transaction log<\/strong> <\/font><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">But which of your data and log files to put onto an SSD? It depends on your workload and which portion of your I\/O subsystem is overloaded. This is what I&#39;m going to investigate in the next few posts. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">For my first set of tests I wanted to see what effect and SSD would have on my workload if the transaction log isn&#39;t the bottleneck but I put in on an SSD, as much advice seems to suggest. In other words, is the log *always* the best thing to put on an SSD? I&#39;ll do data files in the next test. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">This is a narrow test scenario &#8211; inserting 100-GB of server-generated data into a single clustered index. The post <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-1-tb-table-population-part-1-the-baseline\/\"><font face=\"verdana,geneva\" size=\"2\">Benchmarking: 1-TB table population (part 1: the baseline)<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">&nbsp;explains the scripts I&#39;m using. The hardware setup I&#39;m using is explained in <\/font><a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-hardware-setup\/\"><font face=\"verdana,geneva\" size=\"2\">Benchmarking hardware setup<\/font><\/a><font face=\"verdana,geneva\" size=\"2\">, with the addition of the PCI-E mounted 640-GB ioDrive Duo. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">For the data file, I had it pre-grown to 100GB, on a RAID-10 array with 8 x 15k 300-GB SCSI drives. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">For the log file, I had a variety of sizes and auto-growths, both on a RAID-10 array with 8 x 7.2k 1-TB SCSI drives, and on the 320-GB RAID-1 SSD. The log configurations&nbsp;I tested&nbsp;are: <\/font>\n<\/p>\n<ul>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">Starting size 256MB with 50MB, 256MB, 512MB auto-growth <\/font>\n\t<\/div>\n<\/li>\n<li>\n<div>\n\t<font face=\"verdana,geneva\" size=\"2\">Fixed auto-growth of 256MB, but starting size of 256MB, 512MB , 1GB, 2GB, 4GB, 8GB <\/font>\n\t<\/div>\n<\/li>\n<\/ul>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">In each case I ran five tests and then took the average to use as the result. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\"><font size=\"2\"><strong>Fixed initial size and varying auto-growth<\/strong> <\/font><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">This test case simulates a system where the log starts small and grows to around 6GB, then remains in steady state. Transaction size is optimized for&nbsp;the maximum 60-KB log block size, when the log *must* be flushed to disk, no matter whether a transaction just committed or not.&nbsp; <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The results from the first test are below: <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">&nbsp;<img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg\" alt=\"\" width=\"581\" height=\"329\" \/> <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">At the 50MB growth rate, the SSDs gave me a 5% gain in overall run time (the green line), but this decreased to around 2% when I started to increase the auto-growth size. Remember each data point represents the average of 5 tests. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\"><font size=\"2\"><strong>Varying initialize size with fixed auto-growth<\/strong> <\/font><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">This test is the same as the previous one, but tries to remove the overhead of transaction log growth by increasing the initial size of the log so it reaches steady-state faster. <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">The result from the second test are below: <\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">&nbsp;<img decoding=\"async\" src=\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-2variableinitialsize.jpg\" alt=\"\" width=\"582\" height=\"327\" \/><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">For initial log sizes up to and including 2-GB, the SSD gives me a 2.5-3.5% gain over the SATA array. This makes sense as the zero initialization that is required by the log whenever it grows will be a little faster on the SSD. Once I hit 4-GB for the initial size they performed almost the same, and at 8-GB, when no autogrowth occured, the SSD was only 0.8% faster than the RAID-10 array.<\/font>\n<\/p>\n<p>\n<strong><font face=\"verdana,geneva\" size=\"2\">Summary<\/font><\/strong>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">What am I trying to show with these tests? For this post I&#39;m not trying to show you wonderful numbers that&#39;ll make you want to go out and buy an SSD right away. I wanted to show you first of all that just because I have an SSD in my system, if I put it in the wrong place, I don&#39;t get any appreciable performance gain. Clearly the RAID-10 array where my log is was doing just fine when I set the correct log size and growth. You have to think about your I\/O workload before making knee-jerk changes to your I\/O subsystem.<\/font>\n<\/p>\n<p>\n<font size=\"2\"><strong>But one thing I haven&#39;t made clear &#8211; a single SSD configured in RAID-1 outperformed a RAID-10 array of 8 7.2k SATA drives in every test I did!<\/strong><\/font>\n<\/p>\n<p>\n<font face=\"verdana,geneva\" size=\"2\">For this test, my bottleneck is the RAID-10 array where the data file is. Before I try various configurations of that, I want to try the SSD in a RAID-0 configuration, which most people use, and also see if I can get the RAID-10 array to go any faster by formatting it with a 64K stripe size.<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well it&#39;s been&nbsp;almost 6 weeks&nbsp;since my last benchmarking blog post as I got side-tracked with the Myth-a-Day series and doing real work for clients :-) In the benchmarking series I&#39;ve been doing, I&#39;ve been tuning the hardware we have here at home so I can start running some backup and other tests. In the last [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15,61,66,89],"tags":[],"class_list":["post-693","post","type-post","status-publish","format-standard","hentry","category-benchmarking","category-misconceptions","category-performance-tuning","category-ssds"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Benchmarking: Introducing SSDs (Part 1: not overloaded log file array) - Paul S. Randal<\/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.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array) - Paul S. Randal\" \/>\n<meta property=\"og:description\" content=\"Well it&#039;s been&nbsp;almost 6 weeks&nbsp;since my last benchmarking blog post as I got side-tracked with the Myth-a-Day series and doing real work for clients :-) In the benchmarking series I&#039;ve been doing, I&#039;ve been tuning the hardware we have here at home so I can start running some backup and other tests. In the last [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/\" \/>\n<meta property=\"og:site_name\" content=\"Paul S. Randal\" \/>\n<meta property=\"article:published_time\" content=\"2010-05-06T15:01:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-06-22T23:41:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg\" \/>\n<meta name=\"author\" content=\"Paul Randal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Paul Randal\" \/>\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\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/\",\"name\":\"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array) - Paul S. Randal\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg\",\"datePublished\":\"2010-05-06T15:01:00+00:00\",\"dateModified\":\"2015-06-22T23:41:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#primaryimage\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg\",\"contentUrl\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/\",\"name\":\"Paul S. Randal\",\"description\":\"In Recovery...\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce\",\"name\":\"Paul Randal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g\",\"caption\":\"Paul Randal\"},\"sameAs\":[\"http:\/\/3.209.169.194\/blogs\/paul\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array) - Paul S. Randal","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.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/","og_locale":"en_US","og_type":"article","og_title":"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array) - Paul S. Randal","og_description":"Well it&#39;s been&nbsp;almost 6 weeks&nbsp;since my last benchmarking blog post as I got side-tracked with the Myth-a-Day series and doing real work for clients :-) In the benchmarking series I&#39;ve been doing, I&#39;ve been tuning the hardware we have here at home so I can start running some backup and other tests. In the last [&hellip;]","og_url":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/","og_site_name":"Paul S. Randal","article_published_time":"2010-05-06T15:01:00+00:00","article_modified_time":"2015-06-22T23:41:21+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg","type":"","width":"","height":""}],"author":"Paul Randal","twitter_misc":{"Written by":"Paul Randal","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/","name":"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array) - Paul S. Randal","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg","datePublished":"2010-05-06T15:01:00+00:00","dateModified":"2015-06-22T23:41:21+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce"},"breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#primaryimage","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg","contentUrl":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-content\/uploads\/2010\/5\/1-1variablegrowth.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/benchmarking-introducing-ssds-part-1-not-overloaded-log-file-array\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/paul\/"},{"@type":"ListItem","position":2,"name":"Benchmarking: Introducing SSDs (Part 1: not overloaded log file array)"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/paul\/","name":"Paul S. Randal","description":"In Recovery...","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/paul\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/ffcec826c18782e1e0adf173826a7fce","name":"Paul Randal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/paul\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b6a266bba2f088f2551ef529293001bd73bf026bc1908b9866728c062beeeb6?s=96&d=mm&r=g","caption":"Paul Randal"},"sameAs":["http:\/\/3.209.169.194\/blogs\/paul"],"url":"https:\/\/www.sqlskills.com\/blogs\/paul\/author\/paul\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/comments?post=693"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/posts\/693\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/media?parent=693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/categories?post=693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/paul\/wp-json\/wp\/v2\/tags?post=693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}