有没有办法在 Reporting Services 2016 Web 门户中启用 KPI 选择?
我急切地想尝试这个功能,然后我浪费了 2 个小时寻找它,仍然没有找到它。在大多数示例中,它似乎位于“新建”下拉菜单下。
我在主页门户页面上,我确实创建了一个数据集和数据源。仍然没有 KPI 选项。我已经远程访问主机服务器,用户在 SSRS 中拥有系统管理员和系统用户权限。
最近从 SQL Server 2008 升级到 2016,在兼容模式 100 下运行了 4 个月,一切都进展顺利(快速)。经过大量测试并运行迁移顾问后,我决定轻弹“开关”并将兼容性级别更改为 130 ...
这对相当多的 sprocs/queries 产生了不利影响,其中一些在几秒钟内运行现在需要几分钟。CPU也因此而上升。
这些查询写得很好,我每晚都会重建索引和统计信息。
比较看起来相同的计划,稍微偏离几个百分比,但仍然是相同的计划!我认为 CE 没有得到很好的行数。
还有什么奇怪的,有时查询在 130 中运行良好,所以我认为一切都很好,但突然收到警报,查询被占用了 2 行不同的时间,然后我必须添加回 OPTION (QUERYTRACEON 9481) 才能得到它又快了。
我还有什么可以检查/做的事情来帮助这些查询恢复昔日的辉煌吗?
我应该从缓存中删除所有存储过程计划吗???
我们当前的设置是生产中使用的主要数据库,带有用于 HA 的手动故障转移镜像数据库。
我还需要设置一个报告数据库。最好的方法是什么?我应该设置一个 SQL 作业来删除和创建镜像数据库的快照并每晚刷新吗?
有没有人有其他建议?
谢谢
我为多对多关系创建了一个连接表。
该表中只有 2 个列,ticketid并且groupid
典型的数据是
groupid ticketid
20 56
20 87
20 96
24 13
24 87
25 5
Run Code Online (Sandbox Code Playgroud)
我的问题是在创建复合键时我应该ticketid遵循groupid
CONSTRAINT [PK_ticketgroup] PRIMARY KEY CLUSTERED
(
[ticketid] ASC,
[groupid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
或者groupid反过来ticketid
CONSTRAINT [PK_ticketgroup] PRIMARY KEY CLUSTERED
(
[groupid] ASC,
[ticketid] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = …Run Code Online (Sandbox Code Playgroud) 我试图在一个简单的临时 SQL 查询上强制参数化。如本文中所述https://www.simple-talk.com/sql/performance/fixing-cache-bloat-problems-with-guide-plans-强制参数化/
但即使试图用最简单的查询来做到这一点,我也无法让它工作
CREATE TABLE fruit
(
id BIGINT PRIMARY KEY(id)
,title VARCHAR(150)
)
INSERT INTO fruit VALUES ( 1, 'Apple') , ( 2, 'Banana'), ( 3, 'Orange'), ( 4, 'Pear')
DECLARE @params nvarchar(max);
DECLARE @stmt nvarchar(max);
EXEC sp_get_query_template N'SELECT title FROM fruit WHERE id = 4',@stmt OUTPUT, @params OUTPUT;
--SELECT @params
EXEC sp_create_plan_guide
N'fruitGuide',
@stmt,
N'TEMPLATE',
NULL,
@params,
N'OPTION(PARAMETERIZATION FORCED)';
GO
SELECT title FROM fruit WHERE id = 1
Run Code Online (Sandbox Code Playgroud)
计划 XML:
显示编译并且不使用计划指南,我在这里遗漏了什么吗?我哪里出错了?
<?xml version="1.0" encoding="utf-16"?>
<ShowPlanXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" …Run Code Online (Sandbox Code Playgroud) 无论如何,将存储在 DB 中的 BST 日期时间转换为 UTC
查看了“时区”,但似乎是从 UTC 到其他时间。
数据库将日期时间存储为 BST/GMT 历史上需要将这些日期时间返回为 UTC
SELECT CONVERT(datetime,GETDATE()) AT TIME ZONE 'UTC'
Run Code Online (Sandbox Code Playgroud)
例如
2019-07-08 12:01:55.060 -> 2019-07-08 11:01:550
Run Code Online (Sandbox Code Playgroud)
需要回溯大量历史日期数据,因此可能是 GMT 或 BST,具体取决于一年中的时间以及哪一年将确定回溯的切换日期
下面的示例,我存储了 GMT/BST 时区时间,需要使用 UTC 格式
DECLARE @dayLight TABLE(season VARCHAR(50), [gmt/bst] datetime, uct Datetime)
INSERT INTO @dayLight
VALUES('winter','2019-02-10 15:00:00','2019-02-10 15:00:00')
,('winter','2019-03-30 15:00:00','2019-03-30 15:00:00')
,('summer','2019-03-31 02:00:00','2019-03-31 01:00:00') --cut over
,('summer','2019-04-15 15:00:00','2019-03-30 14:00:00')
,('summer','2019-10-27 02:00:00','2019-10-27 01:00:00') --cut over
,('winter','2019-10-27 03:00:00','2019-10-27 03:00:00')
SELECT season,uct,[gmt/bst] FROM @dayLight
Run Code Online (Sandbox Code Playgroud) 试图按父项对没有共同组的每 X 行求和
declare @temp table(Row_ID int, amt DECIMAL(18,2))
insert into @temp values(1, 20)
insert into @temp values(2, 24)
insert into @temp values(3, 20)
insert into @temp values(4, 15)
insert into @temp values(5, 15)
Run Code Online (Sandbox Code Playgroud)
如果 X 行是 2,那么所需的结果是对 2 行求和并将总数放在行旁边。所以前 2 行总计为 44 ,接下来的 2 行为 35 ,剩下的 1 行总计为 15
Row_ID amt tot
1 20.00 44.00
2 24.00 44.00
3 20.00 35.00
4 15.00 35.00
5 15.00 15.00
Run Code Online (Sandbox Code Playgroud)
如果 X 行是 3,那么所需的结果
Row_ID amt tot
1 20.00 64.00
2 …Run Code Online (Sandbox Code Playgroud) sql-server ×6
index ×1
mirroring ×1
plan-guides ×1
primary-key ×1
reporting ×1
snapshot ×1
ssrs ×1
ssrs-2016 ×1
t-sql ×1