{"id":720,"date":"2013-04-15T15:08:09","date_gmt":"2013-04-15T22:08:09","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/glenn\/?p=720"},"modified":"2018-11-13T10:52:08","modified_gmt":"2018-11-13T18:52:08","slug":"a-sql-server-hardware-tidbit-a-day-day-15","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/","title":{"rendered":"A SQL Server Hardware Tidbit a Day &ndash; Day 15"},"content":{"rendered":"<p>For Day 15 of this series, I will be covering a few tools that can be used for hardware identification. Since quite a few database professionals do not have direct access to their database servers (i.e. they cannot login to their database server via RDP), I will talk about what you can learn about your hardware from T-SQL.<\/p>\n<p>If you have <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/t-sql\/statements\/grant-server-permissions-transact-sql\">VIEW SERVER STATE permission<\/a> on your instance, you can query <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/system-dynamic-management-views\/sys-dm-os-sys-info-transact-sql\">sys.dm_os_sys_info<\/a> and find out your physical CPU Socket count, your hyperthread ratio, your logical CPU count, and the amount of physical memory in the machine. Depending on what version of SQL Server you are using, you can also get a few more items of information. Each new major version of SQL Server has added some additional columns to sys.dm_os_sys_info, which makes this query a little more useful. That is why I have three different versions of the query shown in Listing 1.<\/p>\n<p>One frustrating fact is that you <a href=\"http:\/\/sqlblog.com\/error.htm?aspxerrorpath=\/blogs\/kalen_delaney\/archive\/2007\/12\/08\/hyperthreaded-or-not.aspx\">cannot tell the difference<\/a> between hyper-threaded cores and physical cores when you see the hyperthread_ratio result. For example, if you had a quad-core processor with hyper-threading enabled, the hyperthread_ratio would be 8 (4\u00d72), while a quad-core core processor (with no hyper-threading) would have a hyperthread_ratio of 4 (4\u00d71).<\/p>\n<pre class=\"csharpcode\"><span class=\"rem\">-- Hardware Information for SQL Server 2005<\/span>\r\n<span class=\"kwrd\">SELECT<\/span> cpu_count <span class=\"kwrd\">AS<\/span> [Logical CPU <span class=\"kwrd\">Count<\/span>], hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Hyperthread Ratio],\r\ncpu_count\/hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Physical CPU <span class=\"kwrd\">Count<\/span>], \r\nphysical_memory_in_bytes\/1048576 <span class=\"kwrd\">AS<\/span> [Physical Memory (MB)]\r\n<span class=\"kwrd\">FROM<\/span> sys.dm_os_sys_info <span class=\"kwrd\">WITH<\/span> (NOLOCK) <span class=\"kwrd\">OPTION<\/span> (RECOMPILE);\r\n\r\n<span class=\"rem\">-- Hardware information from SQL Server 2008<\/span>\r\n<span class=\"kwrd\">SELECT<\/span> cpu_count <span class=\"kwrd\">AS<\/span> [Logical CPU <span class=\"kwrd\">Count<\/span>], hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Hyperthread Ratio],\r\ncpu_count\/hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Physical CPU <span class=\"kwrd\">Count<\/span>], \r\nphysical_memory_in_bytes\/1048576 <span class=\"kwrd\">AS<\/span> [Physical Memory (MB)], sqlserver_start_time\r\n<span class=\"kwrd\">FROM<\/span> sys.dm_os_sys_info <span class=\"kwrd\">WITH<\/span> (NOLOCK) <span class=\"kwrd\">OPTION<\/span> (RECOMPILE);\r\n\r\n<span class=\"rem\">-- Hardware information from SQL Server 2008 R2  <\/span>\r\n<span class=\"kwrd\">SELECT<\/span> cpu_count <span class=\"kwrd\">AS<\/span> [Logical CPU <span class=\"kwrd\">Count<\/span>], hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Hyperthread Ratio],\r\ncpu_count\/hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Physical CPU <span class=\"kwrd\">Count<\/span>], \r\nphysical_memory_in_bytes\/1048576 <span class=\"kwrd\">AS<\/span> [Physical Memory (MB)], sqlserver_start_time, affinity_type_desc \r\n<span class=\"kwrd\">FROM<\/span> sys.dm_os_sys_info <span class=\"kwrd\">WITH<\/span> (NOLOCK) <span class=\"kwrd\">OPTION<\/span> (RECOMPILE);\r\n\r\n<span class=\"rem\">-- Hardware information from SQL Server 2012<\/span>\r\n<span class=\"kwrd\">SELECT<\/span> cpu_count <span class=\"kwrd\">AS<\/span> [Logical CPU <span class=\"kwrd\">Count<\/span>], hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Hyperthread Ratio],\r\ncpu_count\/hyperthread_ratio <span class=\"kwrd\">AS<\/span> [Physical CPU <span class=\"kwrd\">Count<\/span>], \r\nphysical_memory_kb\/1024 <span class=\"kwrd\">AS<\/span> [Physical Memory (MB)], affinity_type_desc, \r\nvirtual_machine_type_desc, sqlserver_start_time\r\n<span class=\"kwrd\">FROM<\/span> sys.dm_os_sys_info <span class=\"kwrd\">WITH<\/span> (NOLOCK) <span class=\"kwrd\">OPTION<\/span> (RECOMPILE);<\/pre>\n<style type=\"text\/css\"><!--\n.csharpcode, .csharpcode pre\n{\n\tfont-size: small;\n\tcolor: black;\n\tfont-family: consolas, \"Courier New\", courier, monospace;\n\tbackground-color: #ffffff;\n\t\/*white-space: pre;*\/\n}\n.csharpcode pre { margin: 0em; }\n.csharpcode .rem { color: #008000; }\n.csharpcode .kwrd { color: #0000ff; }\n.csharpcode .str { color: #006080; }\n.csharpcode .op { color: #0000c0; }\n.csharpcode .preproc { color: #cc6633; }\n.csharpcode .asp { background-color: #ffff00; }\n.csharpcode .html { color: #800000; }\n.csharpcode .attr { color: #ff0000; }\n.csharpcode .alt \n{\n\tbackground-color: #f4f4f4;\n\twidth: 100%;\n\tmargin: 0em;\n}\n.csharpcode .lnum { color: #606060; }\n--><\/style>\n<p><strong>Listing 1: Hardware Information From Different SQL Server Versions<\/strong><\/p>\n<p>If you do have access to logon directly to your SQL Server machine, there are several great, free tools that you can use to determine a wealth of useful information about your hardware, which I will talk about tomorrow.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For Day 15 of this series, I will be covering a few tools that can be used for hardware identification. Since quite a few database professionals do not have direct access to their database servers (i.e. they cannot login to their database server via RDP), I will talk about what you can learn about your [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,28,29,30,31],"tags":[128],"class_list":["post-720","post","type-post","status-publish","format-standard","hentry","category-sql-server-hardware","category-sql-server-2005","category-sql-server-2008","category-sql-server-2008-r2","category-sql-server-2012","tag-t-sql-hardware-queries"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>A SQL Server Hardware Tidbit a Day &ndash; Day 15 - Glenn Berry<\/title>\n<meta name=\"description\" content=\"Describes how to get hardware information from T-SQL queries\" \/>\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\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A SQL Server Hardware Tidbit a Day &ndash; Day 15 - Glenn Berry\" \/>\n<meta property=\"og:description\" content=\"Describes how to get hardware information from T-SQL queries\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/\" \/>\n<meta property=\"og:site_name\" content=\"Glenn Berry\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-15T22:08:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-11-13T18:52:08+00:00\" \/>\n<meta name=\"author\" content=\"Glenn Berry\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Glenn Berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/\",\"name\":\"A SQL Server Hardware Tidbit a Day &ndash; Day 15 - Glenn Berry\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website\"},\"datePublished\":\"2013-04-15T22:08:09+00:00\",\"dateModified\":\"2018-11-13T18:52:08+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7\"},\"description\":\"Describes how to get hardware information from T-SQL queries\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A SQL Server Hardware Tidbit a Day &ndash; Day 15\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/\",\"name\":\"Glenn Berry\",\"description\":\"Semi-random musings about SQL Server performance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/?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\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7\",\"name\":\"Glenn Berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g\",\"caption\":\"Glenn Berry\"},\"sameAs\":[\"https:\/\/www.sqlskills.com\/blogs\/glenn\/\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/author\/glenn\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A SQL Server Hardware Tidbit a Day &ndash; Day 15 - Glenn Berry","description":"Describes how to get hardware information from T-SQL queries","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\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/","og_locale":"en_US","og_type":"article","og_title":"A SQL Server Hardware Tidbit a Day &ndash; Day 15 - Glenn Berry","og_description":"Describes how to get hardware information from T-SQL queries","og_url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/","og_site_name":"Glenn Berry","article_published_time":"2013-04-15T22:08:09+00:00","article_modified_time":"2018-11-13T18:52:08+00:00","author":"Glenn Berry","twitter_misc":{"Written by":"Glenn Berry","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/","url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/","name":"A SQL Server Hardware Tidbit a Day &ndash; Day 15 - Glenn Berry","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website"},"datePublished":"2013-04-15T22:08:09+00:00","dateModified":"2018-11-13T18:52:08+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7"},"description":"Describes how to get hardware information from T-SQL queries","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/a-sql-server-hardware-tidbit-a-day-day-15\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/glenn\/"},{"@type":"ListItem","position":2,"name":"A SQL Server Hardware Tidbit a Day &ndash; Day 15"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/","name":"Glenn Berry","description":"Semi-random musings about SQL Server performance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/glenn\/?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\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7","name":"Glenn Berry","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g","caption":"Glenn Berry"},"sameAs":["https:\/\/www.sqlskills.com\/blogs\/glenn\/"],"url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/author\/glenn\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/posts\/720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/comments?post=720"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/posts\/720\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/media?parent=720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/categories?post=720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/tags?post=720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}