2.0.9: New: It is now possible to send individual alerts to individual team members. Bug fixes: Some alerts could be thrown with a delay of up to 30 seconds. This delay is now gone, Changes: set_offline_date in v_offline_databases is now reflecting the precise offline date and time. Before there was a margin of up to 30 seconds. Optimized "HandleDatabases" sampling performance. 2.0.8: New: Better error messages hwne trying to use SQL Server Patch Manager, Database Finder and Control Center for non-approved users. Changes: Team operations in the Control Center now will only take effect after a Grafana service restart. This is due to internal changes in Grafana. Microsoft has disabled using icons from networks shares for shortcuts. Shortcuts are now using local icons. 2.0.7: New: Added "notes" to database views, dashboard and DatabaseFinder. Added new procedures to control database notes: s_database_note_item_upsert, s_database_note_item_select, s_database_note_item_delete. Added "sample_id" to database- and server dashboards. Changes: Rewritten functionality to retrieve canonical names for servers, as the previous method used could lead to a memory leak due to a bug in a Microsoft assembly. When removing a server from monitoring, permissions for the server will be removed from Performance Store. Collection of database capacity information will now be at fixed times (can be set in the Control Panel) instead of at a given interval. 2.0.6: New: Upgraded to Grafana 11.2.0. Changes: Optimized performance in alert "Primary and secondary placed on same host". Department info will not be shown in the tooltip on the Capacity dashboard. Bug fixes: Fixed a bug, where "Used log space percentage" and "Used log space since last backup" did not show. 2.0.5: New: Virtual databases, e.g. Delphix databases, will now be marked with is_virtual = 1 in database views and dashboards. "replica_count" added to server views and dashboards. Changes: "availability_group_info" now reports info for asynchronous replicas. "Database sizes" on the Capacity dashboard will now only show current sizes. Views still contains historical data. 2.0.4: New: On the Capacity dashboard, it is now possible to see data usage and trends by department. New alerts: "Wrong default schema name" and "memory dump". Added last_memory_dump information to server views, dashboard and Database Finder. Bug fixes: External links on the Latest Stats dashboard did not work correctly. Fixed a bug where alerts were not triggered for: "Server role member added", "Database role member added" and "High row count change". 2.0.3: New: Upgraded to Grafana 11.1.4. Bug fixes: Fixed a bug where if a timeout occured during transferring of security data to historical tables, data could occur multiple times. 2.0.2: New: Added "Response time" to Overview 2 dashboard. Optimized performance in security views. Changes: last_execution_time for query- and procedure stats will now respect UTC time zone setting. Removed encryption from s_activity. TempDb graph on "Overview 2" dashboard now shows both internally allocated and task allocated tempdb usage. Bug fixes: Fixes a bug where the high CPU usage alert was not reported correctly. Changed some WMI queries to not use Linq, as there is a memory leak bug in the Linq assembly. 2.0.1: New: Upgraded to Grafana 11.1.0. Changes: Extended events handle duration is now included when determining if a server should get a timeout for "TotalCollectDuration". Timeout for extended events handle duration has been set to 60 seconds. Alerts for log-, diff- and full backups that are older than expected now excludes servers in timeout. Deadlock count will now include non-victims as well. When removing a database from and Availability Group and adding it again, the db_id will now be reused. last_execution_time for query- and procedure stats will now respect UTC time zone setting. Removed encryption from s_activity. TempDb graph on "Overview 2" dashboard now shows both internally allocated and task allocated tempdb usage. Bug fixes: Fixed a bug where data could be retrieved twice for sysadmins when querying views that could contain masked data. Fixed a bug where blocking information was not fetched for graphs for servers in timeout. Fixed a bug where historical data for security related changes could appear multiple times. 2.0.0: New: Major release. Performance Store is using its own time series functionality now, meaning Prometheus is no longer used. The Performance Store time series functionality is blazingly fast compared to Prometheus, while using far less memory and storage. Graphs are now 100 % accurate, whereas Prometheus, due to its pull nature, did have imprecise timestamps. Performance Store time series functionality contains Dynamic Resolution Scaling for graphs, so graphs will dynamically scale based on the shown time span. To upgrade: 1. Uninstall current version (no data will be lost) 2. Install new version 3. (Optional) Delete C:\Program Files\Performance Store\Prometheus* directories All graph data can now be queried from v_hist_* views. Teams will now have access to full graph history back in time, and not only from the time they got the access. User activity data can now be whitelisted on SQL Agent job name and/or job category. Filters on all columns on all Dashboards. Canonical name added to Server views and dashboards. Added request_status to Activity views and dashboards. Size change information will now be stored for 400 days (default). Added information about SAN, iSCSI, NVMe, SSD etc. to Capacity views and dashboards. Added information about who manually started and stopped SQL Agent jobs. Upgraded to Grafana 11.0.0. 1.0.38: New: Alert "Primary and secondary placed on same host" now supports a mix of physical- and virtual hosts. Increased general query performance. Upgraded to Grafana 10.3.5. Upgraded to Prometheus 2.51.1. Changes: Optimized performance when collecting unused index information. Teams will now have the default "Viewer" role in Grafana. Changed timeout for activity collection from 60 to 30 seconds. Bug fixes: When collecting unused index information, the number of user updates was not always correct. On the "Activity (current)" dashboard, clicking on a SQL Handle was not working. Fixed error where if the number of reads and writes exceeded the bigint datatype, an error would be thrown. Reported number of blocked processes was not always correct. When handling Agent job execution info, an internal error could occur on the first execution after a service restart. Corrected a bug where report for drive differences did not return anything. Corrected a bug where procedure- and query stats where not correct for a server after it came out of timeout. Corrected a bug where file latency stats where not correct for a server after it came out of timeout. 1.0.37: New: Performance optimizations when retrieving query plans and activity information. Upgraded to Prometheus 2.50.1. Changes: v_databases_all will no longer have discovered = 0 for databases where the server is in timeout. data_size_mb in dbo.databases has been changed to not nullable. 1.0.36: New: When adding access to servers for a team, non-production servers will now be added with access to sensistive data by default. Production servers will still have sensitive data masked by default. Increased query performance. Individual agent jobs can now be chosen on the "Agent jobs executions" dashboard. 1.0.35: New: Optimized audit fetch performance. Added is_cdc_enabled and is_read_only to database views and dashboards. Improved error messages in installer. New table, database_backup_time_whitelist, to exclude servers and/or databases from alerts related to if backups are older than expected. Changes: When calculating predictions for a table, the calculation date will now be the last date the table was seen. When a server is in quarantine, the visual graphs for the server will now not be shown. 1.0.34: New: New view: v_latest_agent_job_executions Changes: Agent job executions will now only be stored for 31 days (default). 1.0.33: New: Upgraded to Grafana 10.2.3. Upgraded to Prometheus 2.49.1. Optimized Agent job execution processing speed. New dashboard: Timeouts Changes: Changed default bulk operation batch size from 1000 to 100000. 1.0.32: New: user_activity_whitelist added to make it possible to filter out unwanted activity when calculating last_user_activity. Upgraded to Prometheus 2.48.1. Table access security implemented on capacity- and patch log dashboards and views. Will now handle AD-groups with circular references. Changes: db_id will now have support for multiple databases in the same AG. Removed information about default data- and log-drive from views and dashboards. 1.0.31: New: Added is_read_committed_snapshot_on, snapshot_isolation_state_desc and db_id to database views and dashboards. 1.0.30: New: Added new field base36_ag_id. base36_ag_id contains identical id numbers for database replicas. Added log_drive_letters and data_drive_letters to database views and dashboards. Upgraded to Prometheus 2.48.0. Upgraded to Grafana 10.2.2. New option to chose to only show production or non-production in the SQL Server Patch Manager. Bug fixes: Corrected bug where v_fileio_stats and v_performance_counters sometimes returned an empty result set. 1.0.29: New: Deadlock data is now stored for 400 days (default) instead of 30 days. 1.0.28: New: Server security views and dashboards now contains information about if the user's default database exists or not. 1.0.27: New: Optimized performance for all server-wide operations. 1.0.26: New: New column, audit_level, added to servers views and dashboard. Made support for empty monitor loops in blocking information. Bug fixes: Corrected bug where the SQL Server Patch Manager could not write log information for legacy cluster nodes. 1.0.25: New: New main dash board. Category added to alerts. Added is_trustworthy_on to database views and dashboards. Added is_auto_create_stats_incremental_on, has_backup_checksums, is_parameterization_forced and is_trustworthy_on to database differences calculations. Support for multiple secondary replicas in comparison engines. Upgraded to Grafana 10.2.0. Upgraded to Prometheus 2.47.2. Bug fixes: Corrected bug in SPN statement generation, where port numbers and instance names where a part of the server name. Corrected a bug in deadlock collection where in rare cases, a process can deadlock without a session_id. 1.0.24: New: New option to mask/unmask password hashes. Upgraded to Grafana 10.1.5. 1.0.23: New: CREATE statements now includes an IF NOT EXIST clause. Description now included on the v_ad_group_members and v_ad_group_members_recursive views. SPN creation statements added to v_servers, v_servers_all and servers dashboard. Stored procedures to show differences in security between servers now includes CREATE statements. 1.0.22: New: New columns to security objects: is_empty_group, is_empty_role, is_ineffective, sid_mismatch Upgraded to Prometheus 2.47.1. Changes: Changed the way procedure- and query statistics are collected. New parameters added to dbo.config: ProcedureStatsRetrieveMinutes and QueryStatsRetrieveMinutes, that indicates how many minutes back in the cache procedure- and query information should be retrieved. 1.0.21: New: Historical data is now available for deprecated servers and databases. Support for "indirect users". Indirect users are users that are created in the databases without a direct server login, but is still having access through a group on server-level. Upgraded to Grafana 10.1.4. Changes: "service_account' renamed to "sql_service_account". 1.0.20: New: Upgraded to Grafana 10.1.2. role_sid and parent_role_sid columns added to views and dashboards. has_securables column added to views and dashboards. is_disabled and is_schema_owner columns added to database security views and dashboards. "Description" field from AD users and groups are now included on user data. Total cores is now shown in the Performance Store Control Center. Changes: "hasaccess' renamed to "has_access". "denylogin' renamed to "deny_login". 1.0.19: New: Added Agent jobs history dashboards and views. Visually see job execution times, status, duration etc. Upgraded to Grafana 10.1.1. Upgraded to Prometheus 2.47.0. Added is_production, database_base36_id and is_disabled_on_server to v_database_security. Empty AD-groups are now included in security views and dashboards. Added client_app_name and statement to audit_extended_include and audit_extended_exclude. Added support for SSMS 2019 in Database Finder. Changes: Alerts will now conform to the time zone setting. Changed timeout for handling securables from 5 minutes to 10 minutes. Security policies now also applies to agent jobs. Free database space on the Capacity dashbboard now contains both free space in the data and the log file. When downloading deadlock graphs, query plans and live query plans, the filenames will now be unique. Bug fixes: Fixed bug where FQDN was not always populated. Fixed a bug where very large databases could cause an arithmetic overflow in v_database_sizes. Fixed a bug where blocked processes could be registered twice in certain scenarios. Fixed deadlock issue when collecting missing index information. Fixed an issue where UTC times would be calculated twice for failover history. Fixed a bug in Database Finder where setting a new default item would crash the application. 1.0.17: New: Added service account and agent service account info to server views and dashboards. Upgraded to Grafana 10.0.2. 1.0.16: New: Capacity information now includes information about unused data- and log space. Optimized performance for security objects. Changes: Version store- and persisted version store information has is moved from databases to activity sections. Database size information is now kept for 400 days instead of 30 days. 1.0.15: New: SQL Server Patch Manager support for legacy SQL Server clusters. Upgraded to Grafana 10.0.1. Upgraded to Prometheus 2.45.0. Enabled experimental support for Prometheus data source delta (incremental) querying. Improved Prometheus startup time. Added new column, legacy_cluster_nodes, to server views and dashboards. The column contains information about cluster names used for "virtual servers" in a legacy SQL Cluster configuration. Added version store- and persisted version store information to views, dashboards and Database Finder. Bug fixes: When multiple monitor loops occured between samples for blocked processes, they could be registered twice in the blockings alert. 1.0.14: Changes: operations_count in unused_indexes is changed from int to bigint. 1.0.13: New: Upgraded to Grafana 9.5.3. Changes: Complete rewrite of server, database- and securables data. Data now contains multidimensional inheritance. 1.0.12 New: Added socket information to server dashboard and views. Added s_activity procedure in the local management database. Upgraded to Grafana 9.5.2. Upgraded to Prometheus 2.44.0. Changes: Changed activity column "memory_usage_mb" to "session_memory_usage_mb". 1.0.11 New: New dashboard and view: v_securables. Upgraded to Grafana 9.5.1. Changes: Removed Create statements from the Database access and Server access dashboards. 1.0.10 New: It is now possible to filter on active unused- and missing indexes. Added connected_using_listener to user activity dashboard and views. If an operation completes after the given timer duration, the operation will start immediately again and not wait for the timer to kick in before starting the operation again. New view: v_execution_status_multiple, that contains information about internal operation durations. 1.0.9 Changes: Blocked sessions are now reported based on data from v_blockings and not v_activity_aggregated anymore. Table size information is now collected using bulk copy. 1.0.8 New: Heavy data retrieval operations now uses SQL Bulk Copy. A new option in the Performance Store Control Center, Bulk Copy Batch Size, can be used to control the batch size. Changes: Optimized alert discovery speed. 1.0.7 New: New alert "High row count changes". Alert will be raised if a production database has a table with more than 1 million rows, where an increase in rows of more than 20% has happened between samples. Bug fixes: Some activity statements were not captured if plan_handle was null. An error could occur if trying to insert server level alerts (e.g. "Data drive with incorrect cluster size") in dbo.stats, when the alert occured on multiple instances on the same server. When updating from a previous version, the installer might hang if one or more of the shared tools were open during the update. Custom stats could report wrong information after the Performance Store service was restarted. Wrong values in table size- and database size predictions. 1.0.6 New: Complete rewrite of the Performance Store service data access layer, resulting in near-zero plan recompilations. New view, v_user_activity, and "User activity" dashboard. New column, plan_affecting_convert_count, added to activity views and dashboards. The column will show number of warnings when a conversion (i.e. data type conversions) is affecting the plan. New column, has_backup_checksums, added to database views and dashboards. Category added to the memory dashboard. It is now possible to select specific tables on the "Table sizes" dashboard. Added predictions for rows, data usage and index usage to the "Table sizes" dashboard and in the new v_table_sizes view. It is now possible to show inactive access objects on the "Server access" and "Database access" dashboards. "last_user_activity" column added to the "Server access" and "Database access" dashboards. Upgraded to Grafana 9.4.7. Upgraded to Prometheus 2.43.0. Added query_hash and query_plan_hash to activity views and dashboards. Added timeout history to the "Latest stats" dashboard. Added is_parameterization_forced to database views and dashboards. Rewrite of the prediction engine. Predictions are now much faster. Changes: Statistics changes are no longer shown in "Changes" on visual dashboards. Increased performance on the "Table sizes" dashboard. Members of the sysadmin role will not have default access to views anymore. Query plans are now the full query plans for the whole batch and not for the individual statements anymore. When stopping Prometheus services, it will be gracefully shut down before the service stop. Bug fixes: Fixed a bug in Database Finder related to the new "single_use_plans_mb" column. Fixed a bug where an Availability Group failover did not throw an alert. Fixed a bug where statements where collected in the extended audit when no servers where added to the include-table. Fixed a bug where it was not possible to show latch stats for more than one server at a time. 1.0.5 New: Added latch statistics. New view: v_latch_stats and new dashboard: Latches. Added new license calculations for high availability- and disaster recovery replicas. Added filter on the statement column on the Errors dashboard. Added is_tempdb_metadata_memory_optimized to server views and dashboard. Added total_plans_mb and single_use_plans_mb to server views and dashboard. Changes: When calculating license information, license costs for Availability groups with secondary backups are now excluded unless diff backups are taken. Sample time on the Waits dashboard will noe adapt to the chosen time zone. License calculations will now include servers in quarantine. Bug fixes: Some unused- and missing index information did not survive a SQL Server service restart. Fixed bug where it was not always possible to perform a database upgrade from a previous version. Fixed a bug where it was not possible to uninstall a previous version from add/remove programs if it had been upgraded more than once. Fixed bug where the last 4 digits of plan_handle and sql_handle were missing. Fixed bug where performance counters where not always visible when querying v_performance_counters. 1.0.4 New: New table, errors_whitelist, to filter out unwanted error messages. Changes: Audit data is now stored for 400 days (default, but can be changed). Users logged into Grafana will now not be signed out automatically after a while. 1.0.3 New: New dashboard: Table sizes. See size info for each table and index. Differences between nodes in an Availability Group are now shown in Latest Stats. Upgraded to Grafana 9.3.4. Upgraded to Prometheus 2.42.0. Filter on client_hostname in Top Completed Queries. 1.0.2 New: Added a new state diagram on the "Failover history" dashboard, to quickly see when a replica was the primary replica. Upgraded to Prometheus 2.40.7. A bug in the previous Grafana version prevented changes to be shown visually on graphs. Upgraded to Grafana 9.3.2. Added "Total collect duration timoeut" value to the Control Center. If the total time for sampling a server is greater than the "Total collect duration timeout" value, the sampling will be marked as timed out. Added operations_count column to unused index information. The value is the sum of seeks, scans and lookups. Added workload group name to Activity views. Changes: Added data compression on dbo.database_access and dbo.server_access Optimized database information retrieval query. Timeout information now contains location information even if IgnoreLocation is set to true in dbo.config. Bug fixes: Fixed a bug where the Performance Store service account did not start during installation. Fixed a bug where some alerts where send for all servers instead of specific servers. 1.0.1 New: Added MaxQueryPlanLength to dbo.config: A limit for the maximum query plan retrieval length can now be set in dbo.config. Performance Store service must be restarted after changing this value. SQL Server Patch Manager will now report if the requested features may not be installed or features are already at a higher patch level. Upgraded to Grafana 9.2.6 Changes: Changed column names from tempdb_allocations_* to tempdb_session_allocations_* and tempdb_current_* to tempdb_task_allocations_* in v_activity, v_current_activity and v_activity_aggregated and on dashboards. Bug fixes: Fixed a bug in SQL Server Patch Manager where a log file could not be written for certain parallel operations. 1.0.0 Initial version.