{"id":1779,"date":"2013-05-21T19:43:32","date_gmt":"2013-05-21T23:43:32","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/jonathan\/?p=1779"},"modified":"2017-04-13T14:41:53","modified_gmt":"2017-04-13T18:41:53","slug":"querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/","title":{"rendered":"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information"},"content":{"rendered":"<p>In my <a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/read-only-access-to-virtual-center-for-dbas\/\" target=\"_blank\">previous post<\/a> I showed how DBAs can be provided with read-only access to Virtual Center for monitoring VM performance in the\u00a0data-center\u00a0\u00a0 One thing that many administrators don\u2019t realize or think about is that Virtual Center uses a database for storing information about the virtual data center and the most common database platform used for this purpose is SQL Server.\u00a0 Virtual Center can use an existing SQL Server in the environment, or it can install SQL Server Express during setup.<\/p>\n<p>As a consultant, I do a lot of reviews of SQL Servers running on VMware, and as part of that work I have to understand the underlying virtualization configuration &#8211; not just for SQL Server, but for the virtualized data center.\u00a0 This includes needing information about the host configuration, other VMs running on the host, and performance metrics from the VM historical data that is stored in the vCenter database, which is named VIM_VCDB by default.<\/p>\n<p>The VIM_VCDB database\u00a0isn&#8217;t\u00a0entirely documented, but a list of the views and their definitions can be found in the <a href=\"http:\/\/www.vmware.com\/pdf\/vc_dbviews.pdf\" target=\"_blank\">Using VirtualCenter Database Views<\/a> technical note from VMware.\u00a0 Using this information, and additional information collected using a server-side trace against the database while working in vCenter,\u00a0I&#8217;ve\u00a0compiled a series of Transact-SQL scripts for pulling information from the VIM_VCDB database in an environment.<\/p>\n<p>The first time I ever demonstrated these scripts was last week during the Virtualization module of our <a href=\"https:\/\/www.sqlskills.com\/sql-server-training\/iehadr\/\">IE3: High Availability and Disaster Recovery<\/a> course in Chicago.\u00a0 I\u2019m also using these scripts in the Pluralsight course on SQL Server Virtualization that I am currently recording.\u00a0 When I demonstrated these scripts last week, the first question the class asked was where can they get them.\u00a0 We always provide the scripts from our demos to students, but I also promised to blog them as well this week.<\/p>\n<h2>Host Configuration<\/h2>\n<p>The VPXV_HOSTS view provides host level information and I commonly JOIN that view to the VPXV_VMS view to aggregate VM information per host as a part of a environment health check.<\/p>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n-- Host Configuration\r\nSELECT\r\n    vh.NAME AS HOST_NAME,\r\n    HOST_MODEL,\r\n    CPU_MODEL,\r\n    CPU_COUNT,\r\n    CPU_CORE_COUNT,\r\n    CPU_HZ,\r\n    CPU_THREAD_COUNT,\r\n    SUM(CASE WHEN vm.POWER_STATE = N'On' THEN vm.NUM_VCPU ELSE 0 END) AS VM_VCPU_ACTIVE,\r\n    MEM_SIZE,\r\n    SUM(CASE WHEN vm.POWER_STATE = N'On' THEN vm.NUM_VCPU ELSE 0 END)*1.\/CPU_THREAD_COUNT AS THREAD_OVERCommit,\r\n    SUM(CASE WHEN vm.POWER_STATE = N'On' THEN vm.NUM_VCPU ELSE 0 END)*1.\/CPU_CORE_COUNT AS CORE_OVERCommit,\r\n    CAST(MEM_SIZE AS BIGINT)\/1024\/1024 AS MEM_SIZE_MB,\r\n    SUM(CASE WHEN vm.POWER_STATE = N'On' THEN vm.MEM_SIZE_MB ELSE 0 END) AS VM_MEM_SIZE_MB,\r\n    SUM(CASE WHEN vm.POWER_STATE = N'On' THEN vm.MEM_SIZE_MB ELSE 0 END)*1.\/(CAST(MEM_SIZE AS BIGINT)\/1024\/1024) AS MEM_OVERCommit,\r\n    SUM(CAST(vm.MEMORY_OVERHEAD AS BIGINT)) AS VM_MEMORY_OVERHEAD,\r\n    SUM(vm.MEM_SIZE_MB) AS VM_MEM_SIZE_MB_POTENTIAL,\r\n    SUM(vm.NUM_VCPU) AS VM_VCPU_ALLOC_POTENTIAL,\r\n    NIC_COUNT,\r\n    HBA_COUNT,\r\n    SUM(CASE WHEN vm.VMMWARE_TOOL = N'OK' THEN 1 ELSE 0 END) AS VM_TOOLS_OK,\r\n    SUM(CASE WHEN vm.VMMWARE_TOOL = N'Old' THEN 1 ELSE 0 END) AS VM_TOOLS_OUT_OF_DATE,\r\n    SUM(vm.NUM_VCPU) AS VM_VCPU_ALLOC\r\nFROM dbo.VPXV_HOSTS AS vh\r\nINNER JOIN dbo.VPXV_VMS AS vm\r\n    ON vh.HOSTID = vm.HOSTID\r\nGROUP BY vh.NAME, HOST_MODEL, CPU_MODEL, CPU_COUNT, CPU_CORE_COUNT, CPU_HZ,\r\n    CPU_THREAD_COUNT, MEM_SIZE, NIC_COUNT, HBA_COUNT;\r\n<\/pre>\n<h2>Performance Counter Information<\/h2>\n<p>Performance counters are maintained historically in the VIM_VCDB database at multiple\u00a0roll-up\u00a0levels. The VPXV_HIST_STAT_DAILY view has the daily\u00a0roll-up\u00a0values for each of the VMs and the VPXV_HIST_STAT_WEEKLY view has the weekly\u00a0roll-up\u00a0values.<\/p>\n<p>Querying individual counter values and making decisions is not appropriate for all counters. An example of this is the CPU Ready counter which has to be calculated from the\u00a0roll-up\u00a0summation to determine if a problem actually exists (see\u00a0<a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-time-in-vmware-and-how-to-interpret-its-real-meaning\/\">CPU Ready Time in VMware and How to Interpret its Real Meaning<\/a>). Two counters that I look at for the virtual data center and all of the VMs are CPU Ready and Memory Ballooned (vmmemctl).<\/p>\n<h3>CPU Ready Values<\/h3>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n-- Daily %RDY values\r\nSELECT\r\n    vh.NAME AS HostName,\r\n    vv.NAME AS GuestName,\r\n    SAMPLE_TIME,\r\n    SAMPLE_INTERVAL,\r\n    (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 AS READY_PERCENT,\r\n    CASE\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 5\r\n                AND (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &lt; 10\r\n            THEN N'WARN'\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 10 THEN N'RED'\r\n        ELSE N'OK'\r\n    END AS CPURDY_State,\r\n    STAT_VALUE AS CPUReady_Summation,\r\n    NUM_VCPU\r\nFROM dbo.VPXV_HIST_STAT_DAILY AS vhsd\r\nINNER JOIN dbo.VPXV_VMS AS vv\r\n    ON vhsd.ENTITY = N'vm-'+CAST(vv.VMID AS NVARCHAR)\r\nINNER JOIN  dbo.VPXV_HOSTS AS vh\r\n    ON vv.HOSTID = vh.HOSTID\r\nWHERE STAT_GROUP = N'cpu'\r\n  AND STAT_NAME = N'ready'\r\n  AND CASE\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 5\r\n            AND (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &lt; 10\r\n            THEN N'WARN'\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 10 THEN N'RED'\r\n        ELSE N'OK'\r\n        END &lt;&gt; N'OK'\r\nORDER BY CPURDY_State, READY_PERCENT DESC;\r\n\r\n-- Weekly %RDY values\r\nSELECT\r\n    vh.NAME AS HostName,\r\n    vv.NAME AS GuestName,\r\n    SAMPLE_TIME,\r\n    SAMPLE_INTERVAL,\r\n    (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 AS READY_PERCENT,\r\n    CASE\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 5\r\n                AND (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &lt; 10\r\n            THEN N'WARN'\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 10 THEN N'RED'\r\n        ELSE N'OK'\r\n    END AS CPURDY_State,\r\n    STAT_VALUE AS CPUReady_Summation,\r\n    NUM_VCPU\r\nFROM dbo.VPXV_HIST_STAT_WEEKLY AS vhsd\r\nINNER JOIN dbo.VPXV_VMS AS vv\r\n    ON vhsd.ENTITY = N'vm-'+CAST(vv.VMID AS NVARCHAR)\r\nINNER JOIN  dbo.VPXV_HOSTS AS vh\r\n    ON vv.HOSTID = vh.HOSTID\r\nWHERE STAT_GROUP = N'cpu'\r\n  AND STAT_NAME = N'ready'\r\n  AND CASE\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 5\r\n            AND (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &lt; 10\r\n            THEN N'WARN'\r\n        WHEN (STAT_VALUE\/ (vv.NUM_VCPU * SAMPLE_INTERVAL * 1000)) * 100 &gt; 10 THEN N'RED'\r\n        ELSE N'OK'\r\n        END &lt;&gt; N'OK'\r\nORDER BY CPURDY_State, READY_PERCENT DESC;\r\n<\/pre>\n<h3>Memory Ballooning Counters<\/h3>\n<pre class=\"brush: sql; title: ; notranslate\" title=\"\">\r\n-- Weekly Memory Ballooned\r\nSELECT\r\n    vh.NAME AS HostName,\r\n    vv.NAME AS VMName,\r\n    Start,\r\n    Finish,\r\n    tab.SAMPLE_INTERVAL,\r\n    MIN(STAT_VALUE)\/1024. AS MinBallooned_MB,\r\n    MAX(STAT_VALUE)\/1024. AS MaxBallooned_MB,\r\n    AVG(STAT_VALUE)\/1024. AS AvgBallooned_MB,\r\n    COUNT(*) * (tab.SAMPLE_INTERVAL\/60) AS MinutesBallooned\r\nFROM dbo.VPXV_HIST_STAT_WEEKLY AS vhsd\r\nINNER JOIN dbo.VPXV_VMS AS vv\r\n    ON vhsd.ENTITY = N'vm-'+CAST(vv.VMID AS NVARCHAR)\r\nINNER JOIN  dbo.VPXV_HOSTS AS vh\r\n    ON vv.HOSTID = vh.HOSTID\r\nCROSS JOIN (SELECT\r\n                MIN(SAMPLE_TIME) AS Start,\r\n                MAX(SAMPLE_TIME) AS Finish,\r\n                SAMPLE_INTERVAL\r\n            FROM dbo.VPXV_HIST_STAT_WEEKLY\r\n            WHERE STAT_NAME = N'vmmemctl'\r\n              AND STAT_VALUE &gt; 0\r\n            GROUP BY SAMPLE_INTERVAL) AS tab\r\nWHERE STAT_NAME = N'vmmemctl'\r\n  AND STAT_VALUE &gt; 0\r\nGROUP BY vh.Name, vv.Name, Start, Finish, tab.SAMPLE_INTERVAL\r\nORDER BY HostName, MinutesBallooned DESC;\r\n\r\n-- Daily Memory Ballooned\r\nSELECT\r\n    vh.NAME AS HostName,\r\n    vv.NAME AS VMName,\r\n    Start,\r\n    Finish,\r\n    tab.SAMPLE_INTERVAL,\r\n    MAX(STAT_VALUE)\/1024. AS MaxBallooned_MB,\r\n    AVG(STAT_VALUE)\/1024. AS AvgBallooned_MB,\r\n    COUNT(*) * (tab.SAMPLE_INTERVAL\/60) AS MinutesBallooned\r\nFROM dbo.VPXV_HIST_STAT_DAILY AS vhsd\r\nINNER JOIN dbo.VPXV_VMS AS vv\r\n    ON vhsd.ENTITY = N'vm-'+CAST(vv.VMID AS NVARCHAR)\r\nINNER JOIN  dbo.VPXV_HOSTS AS vh\r\n    ON vv.HOSTID = vh.HOSTID\r\nCROSS JOIN (SELECT\r\n                MIN(SAMPLE_TIME) AS Start,\r\n                MAX(SAMPLE_TIME) AS Finish,\r\n                SAMPLE_INTERVAL\r\n            FROM dbo.VPXV_HIST_STAT_DAILY\r\n            WHERE STAT_NAME = N'vmmemctl'\r\n                AND STAT_VALUE &gt; 0\r\n            GROUP BY SAMPLE_INTERVAL) AS tab\r\nWHERE STAT_NAME = N'vmmemctl'\r\n  AND STAT_VALUE &gt; 0\r\nGROUP BY vh.Name, vv.Name, Start, Finish, tab.SAMPLE_INTERVAL\r\nORDER BY HostName, MinutesBallooned DESC;\r\n<\/pre>\n<h2>Summary<\/h2>\n<p>The VIM_VCDB contains a lot more information than\u00a0I&#8217;ve\u00a0covered in this post.\u00a0 These are simply examples of the types of information that you can query from the database as a part of troubleshooting problems or evaluating the configuration of a virtual data center.\u00a0 One of the important things about having access to this data is to always validate that you are applying the appropriate understanding to the values being stored in the database.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In my previous post I showed how DBAs can be provided with read-only access to Virtual Center for monitoring VM performance in the\u00a0data-center\u00a0\u00a0 One thing that many administrators don\u2019t realize or think about is that Virtual Center uses a database for storing information about the virtual data center and the most common database platform used [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-1779","post","type-post","status-publish","format-standard","hentry","category-virtualization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information - Jonathan Kehayias<\/title>\n<meta name=\"description\" content=\"This post shows how to query the vCenter database in SQL Server to gain insight into the configuration and performance of VMware hosts and VMs.\" \/>\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\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information - Jonathan Kehayias\" \/>\n<meta property=\"og:description\" content=\"This post shows how to query the vCenter database in SQL Server to gain insight into the configuration and performance of VMware hosts and VMs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/\" \/>\n<meta property=\"og:site_name\" content=\"Jonathan Kehayias\" \/>\n<meta property=\"article:published_time\" content=\"2013-05-21T23:43:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-04-13T18:41:53+00:00\" \/>\n<meta name=\"author\" content=\"Jonathan Kehayias\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jonathan Kehayias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/\"},\"author\":{\"name\":\"Jonathan Kehayias\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"headline\":\"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information\",\"datePublished\":\"2013-05-21T23:43:32+00:00\",\"dateModified\":\"2017-04-13T18:41:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/\"},\"wordCount\":1442,\"commentCount\":15,\"articleSection\":[\"Virtualization\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/\",\"name\":\"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information - Jonathan Kehayias\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\"},\"datePublished\":\"2013-05-21T23:43:32+00:00\",\"dateModified\":\"2017-04-13T18:41:53+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"description\":\"This post shows how to query the vCenter database in SQL Server to gain insight into the configuration and performance of VMware hosts and VMs.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Virtualization\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/category\\\/virtualization\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\",\"name\":\"Jonathan Kehayias - The Rambling DBA\",\"description\":\"The Rambling DBA\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/?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\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\",\"name\":\"Jonathan Kehayias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"caption\":\"Jonathan Kehayias\"},\"sameAs\":[\"http:\\\/\\\/3.209.169.194\\\/blogs\\\/jonathan\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information - Jonathan Kehayias","description":"This post shows how to query the vCenter database in SQL Server to gain insight into the configuration and performance of VMware hosts and VMs.","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\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/","og_locale":"en_US","og_type":"article","og_title":"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information - Jonathan Kehayias","og_description":"This post shows how to query the vCenter database in SQL Server to gain insight into the configuration and performance of VMware hosts and VMs.","og_url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/","og_site_name":"Jonathan Kehayias","article_published_time":"2013-05-21T23:43:32+00:00","article_modified_time":"2017-04-13T18:41:53+00:00","author":"Jonathan Kehayias","twitter_misc":{"Written by":"Jonathan Kehayias","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/#article","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/"},"author":{"name":"Jonathan Kehayias","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"headline":"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information","datePublished":"2013-05-21T23:43:32+00:00","dateModified":"2017-04-13T18:41:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/"},"wordCount":1442,"commentCount":15,"articleSection":["Virtualization"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/","name":"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information - Jonathan Kehayias","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website"},"datePublished":"2013-05-21T23:43:32+00:00","dateModified":"2017-04-13T18:41:53+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"description":"This post shows how to query the vCenter database in SQL Server to gain insight into the configuration and performance of VMware hosts and VMs.","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/querying-the-vmware-vcenter-database-vcdb-for-performance-and-configuration-information\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/"},{"@type":"ListItem","position":2,"name":"Virtualization","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/category\/virtualization\/"},{"@type":"ListItem","position":3,"name":"Querying the VMware vCenter Database (VCDB) for Performance and Configuration Information"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/","name":"Jonathan Kehayias - The Rambling DBA","description":"The Rambling DBA","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/?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\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c","name":"Jonathan Kehayias","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","caption":"Jonathan Kehayias"},"sameAs":["http:\/\/3.209.169.194\/blogs\/jonathan"]}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/1779","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/comments?post=1779"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/1779\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/media?parent=1779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/categories?post=1779"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/tags?post=1779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}