diff --git a/samples/serverReports/.vscode/launch.json b/samples/serverReports/.vscode/launch.json index 4441e64582..b94a4b988c 100644 --- a/samples/serverReports/.vscode/launch.json +++ b/samples/serverReports/.vscode/launch.json @@ -1,28 +1,57 @@ +// A launch configuration that launches the extension inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + +// To debug the extension: +// 1. please install the "SQL Operations Studio Debug" extension into VSCode +// 2. Ensure sqlops is added to your path: +// - open SQL Operations Studio +// - run the command "Install 'sqlops' command in PATH" { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", + "version": "0.2.0", "configurations": [ + { - "type": "node", + "name": "Debug in SqlOps install", + "type": "sqlopsExtensionHost", "request": "launch", - "name": "Launch Program", - "program": "${workspaceFolder}\\out\\src\\extension" + "runtimeExecutable": "sqlops", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] }, - { - "type": "node", - "request": "attach", - "name": "Attach to Ops Studio", - "protocol": "inspector", - "port": 5870, - "restart": true, + { + "type": "node", + "request": "attach", + "name": "Attach to Ops Studio", + "protocol": "inspector", + "port": 5870, + "restart": true, "sourceMaps": true, - "outFiles": [ - "${workspaceRoot}/out/**/*.js" - ], + "outFiles": [ + "${workspaceRoot}/out/**/*.js" + ], "preLaunchTask": "", "timeout": 25000 - }, + }, + { + "name": "Debug in enlistment", + "type": "sqlopsExtensionHost", + "request": "launch", + "windows": { + "runtimeExecutable": "${workspaceFolder}/../../scripts/sql.bat" + }, + "osx": { + "runtimeExecutable": "${workspaceFolder}/../../scripts/sql.sh" + }, + "linux": { + "runtimeExecutable": "${workspaceFolder}/../../scripts/sql.sh" + }, + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ], + "timeout": 20000 + } ] } \ No newline at end of file diff --git a/samples/serverReports/README.md b/samples/serverReports/README.md index 5618eedcad..67e1804c57 100644 --- a/samples/serverReports/README.md +++ b/samples/serverReports/README.md @@ -22,4 +22,18 @@ See the [Server Reports Extension Project] in the SQL Operations Studio reposito ## Contributions and "thank you" -Special thank to Paul Randal, Aaron Bertrand, and Glenn Berry for providing useful queries. \ No newline at end of file +Special thanks to Paul Randal, Aaron Bertrand, and Glenn Berry for providing useful queries. + +We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes: +* flyfishingdba for Add square brackets for ms_foreachdb call (#1023) + + +## Documentation +See [Paul Randal's wait types library] for more information about each wait type in the Wait Counts widget. + + +[Paul Randal's wait types library]:https://www.sqlskills.com/help/waits + +## What's new in Server Reports v1.1? +* Fixed DB Space Usage where it threw an error when database names contain special characters +* Changed DB Space Usage and DB Buffer Usage to show only top 10 data \ No newline at end of file diff --git a/samples/serverReports/package-lock.json b/samples/serverReports/package-lock.json index 73494685d6..a095f646f4 100644 --- a/samples/serverReports/package-lock.json +++ b/samples/serverReports/package-lock.json @@ -625,6 +625,7 @@ "anymatch": "2.0.0", "async-each": "1.0.1", "braces": "2.3.1", + "fsevents": "1.2.2", "glob-parent": "3.1.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -1730,6 +1731,535 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.2.tgz", + "integrity": "sha512-iownA+hC4uHFp+7gwP/y5SzaiUo7m2vpa0dhpzw8YuKtiZsz7cIXsFbXpLEeBM6WuCQyw1MH4RRe6XI8GFUctQ==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.9.1" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.9.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.6", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, "fstream": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", @@ -4105,6 +4635,13 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, "nanomatch": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", diff --git a/samples/serverReports/package.json b/samples/serverReports/package.json index a38f8daa84..e468700945 100644 --- a/samples/serverReports/package.json +++ b/samples/serverReports/package.json @@ -2,7 +2,7 @@ "name": "server-report", "displayName": "Server Reports", "description": "Server Reports", - "version": "0.1.0", + "version": "0.1.1", "publisher": "Microsoft", "preview": true, "engines": { @@ -126,15 +126,25 @@ "container": { "widgets-container": [ { - "name": "DB Space Usage", + "name": "Top 10 DB Space Usage", "gridItemConfig": { "sizex": 2, - "sizey": 1 + "sizey": 2 }, "widget": { "extension-dbspace-usage": {} } }, + { + "name": "Top 10 DB Buffer Usage", + "gridItemConfig": { + "sizex": 2, + "sizey": 2 + }, + "widget": { + "extension-dbbuffer-usage": {} + } + }, { "name": "CPU Utilization", "gridItemConfig": { @@ -164,16 +174,6 @@ "widget": { "extension-wait-counts-by-Paul-Randal": {} } - }, - { - "name": "DB Buffer Usage", - "gridItemConfig": { - "sizex": 2, - "sizey": 2 - }, - "widget": { - "extension-dbbuffer-usage": {} - } } ] } diff --git a/samples/serverReports/src/sql/all_db_space_used.sql b/samples/serverReports/src/sql/all_db_space_used.sql index d01060a693..7dc60aef15 100644 --- a/samples/serverReports/src/sql/all_db_space_used.sql +++ b/samples/serverReports/src/sql/all_db_space_used.sql @@ -89,7 +89,7 @@ FROM ( ON p.object_id = it.object_id ) AS partitions' ----------------------------------- -select +select TOP 10 d.Dbname, --(file_size_mb + log_file_size_mb) as DBsize, --d.file_Size_MB, @@ -100,4 +100,4 @@ select --l.log_Free_Space_MB, --fs.Freespace as DB_Freespace from @dbsize d join @logsize l on d.Dbname=l.Dbname join @dbfreesize fs on d.Dbname=fs.name -order by Dbname +order by d.Space_Used_MB DESC diff --git a/samples/serverReports/src/sql/memorybydb.sql b/samples/serverReports/src/sql/memorybydb.sql index 62a258a960..3ff610b0e4 100644 --- a/samples/serverReports/src/sql/memorybydb.sql +++ b/samples/serverReports/src/sql/memorybydb.sql @@ -16,7 +16,7 @@ FROM sys.dm_os_buffer_descriptors --WHERE database_id BETWEEN 5 AND 32766 GROUP BY database_id ) -SELECT +SELECT TOP 10 [db_name] = CASE [database_id] WHEN 32767 THEN 'Resource DB' ELSE DB_NAME([database_id]) END,