如何比较以前记录的值?
桌子:
ID SAMPLEDATE LEVEL PASSED
1 1/1/2016 0 1
2 1/2/2016 1 1
3 1/3/2016 2 0
4 1/4/2016 1 1
5 1/5/2016 2 0
Run Code Online (Sandbox Code Playgroud)
最后一条记录(由 排序SAMPLEDATE)是否与最后LEVEL一条失败的记录相同?如果是,则返回 TRUE,否则返回 FALSE。
因此,在我的示例数据中,最后一条记录失败并显示为LEVEL2。然后在 2016 年 1 月 3 日失败的最后一条记录(在 2016 年 1 月 5 日之前)是相同的 LEVEL,因此将返回 TRUE。如果是不同的 LEVEL FALSE 将被返回。
我有以下脚本,运行时给我一个逗号分隔的数据库名称列表。
SET NOCOUNT ON
declare @db_list NVARCHAR(MAX)
DECLARE @command varchar(1000)
SELECT @COMMAND = 'SELECT DB_NAME()'
SELECT @db_list = STUFF((
SELECT ', ' + name FROM sys.databases
WHERE name like '__Order'
FOR XML PATH(''),
TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '')
-- in case there are no DBs to show, then show no DB '***'
select @db_list = COALESCE(@db_list,'***')
SELECT @db_list = RTRIM(LTRIM(REPLACE(@DB_LIST,',', ',''')))
select @db_list
Run Code Online (Sandbox Code Playgroud)
这给了我以下结果:
UKOrder,' ATOrder,' AUOrder
Run Code Online (Sandbox Code Playgroud)
1)这给出了错误的结果集,我希望它是
'UKOrder','ATOrder','AUOrder'
Run Code Online (Sandbox Code Playgroud)
2) 如何将@db_list 传递给 sp_MSforeachdb?
假设我想跑
选择 db_name()
在@db_list 中的每个数据库中
英国订单
订单 …
sql-server dynamic-sql sql-server-2008-r2 sql-server-2012 sql-server-2014
为了节省许可成本,我正在评估是否可以使用 VLDB 的标准版。我将概述场景:
我想知道我需要企业版做什么。我不会从分区中获得任何好处,因为我不想切换分区或将它们放在不同的存储上。数据压缩可以为我们节省 50%,但我们使用廉价存储。与昂贵的许可证相比,节省的费用微不足道。
对于 HA,我不明白为什么我不能使用已弃用但仍在工作的镜像。这并不理想,但企业版要为不明确的好处付出高昂的代价。
尽管如此,在这里使用标准版还是让我感到紧张,因为它不是普遍推荐的,而且似乎有点冒险。寻求有关这种情况的一些建议。谢谢!
我为我的 SQL Server 设置了 AlwaysOn 可用性组。现在我想配置SSIS。我该怎么做?下面的链接提供了一些信息,但由于我不是 DBA,因此很难理解这篇文章:
AlwaysOn 可用性组和 SQL Server 作业,第 23 部分:维护计划备份和 SSIS 包
有人可以指导我在可用性组中进行 SSIS 的基本设置并解释节点之间如何同步吗?
更新
我指的是 SSIS 目录数据库 (SSISDB)
我可以在我的连接管理器中使用监听器吗?
我在带有一个数据库的 Azure VM(Windows Server 2012 R2)上安装了 Microsoft SQL Server 2014。是否可以为我的 Google Drive 文件夹配置自动备份?也许是特殊工具或其他东西?
我试图减少我们应用程序数据库上的巨大性能问题。我们使用 SQL Server 2014,我们有很多视图。
我想知道重写左连接以在预测中使用存在是否有重大影响?
我的问题是:在构建根据相关匹配项的存在投射不同数据的查询时,是否有任何有关性能的最佳实践?
我的意思是,这些查询中的哪一个可以被认为更好?
1):
select
a.Id,
case when b.Id is not null
then convert(bit,1)
else convert(bit,0)
end IsActive
from A a
left join B b on a.Id = b.Id;
Run Code Online (Sandbox Code Playgroud)
2):
select
a.Id,
iif(exists(select top 1 1 from B where Id = a.Id),
convert(bit,1),
convert(bit,0)
) IsActive
from A a;
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您对查询的形式有任何意见或一般性建议,请随时发表评论。
我有一个简单的表:
CREATE TABLE [dbo].[UserTestGroups](
[UserTestGroupId] [int] IDENTITY(1,1) NOT NULL,
[Token] [nvarchar](100) NOT NULL,
[TestId] [bigint] NOT NULL,
[Group] [tinyint] NOT NULL,
[InsertDate] [datetime] NOT NULL)
Run Code Online (Sandbox Code Playgroud)
该表将有相对大量的插入 - 最初 10,000 个会话,每个会话 8 行,每天总共 80,000 个插入。我们预计在不久的将来会显着增加。无论如何,我们努力使我们的平台尽可能具有弹性,而不仅仅是适应当前的负载。
该表将用于报告,可将其视为次要要求。
由于我们使用的是实体框架(Microsoft 的 ORM),因此所有写入的表都需要一个逻辑主键,因此我添加了一个我直接忽略的 Identity 列。我不喜欢使用复合键,它们往往会使 ORM 成为噩梦,所以除非我绝对必须这样做,否则我会添加另一个标识列并将其设为 PK。
所有 BI 报告的查询都将基于令牌,即sessionId - GUID,因此我在该token列上创建了聚集索引。
我们的 DBA 是 SQL Server MVP,他告诉我在 GUID 列上使用聚集索引会导致碎片,我应该在IDENTITY列上创建聚集索引,并为列创建非聚集索引Token。
不明白,非聚集索引会不会有同样的碎片问题?为什么将数据复制到新索引中比使用聚集索引更好?
token-Guid 不是 PK,PK 是所有列的组合(包括InsertDate)。
目前(因为我真的不知道是什么原因)所有 GUID 值都存储为NVARCHAR(100),我不知道这样做的历史原因是什么,但这就是我们所拥有的。
我们的DBA在海外,我们的沟通是一条推特长,所以在他回来之前我无法得到正确的答案
sql-server clustered-index identity fragmentation sql-server-2014
我有一个 MS-SQL 2014 SP1 - 两个节点 AlwaysOn AG(一个主节点和一个只读辅助节点)有大约 10 个数据库,总大小为 20-30GB。我有一些关于调度索引重建和统计信息收集的问题。
我计划通过维护计划每周安排一次。通常在主节点上根本没有负载的周日晚上。
我应该在主要还是在副本中运行作业?如果我只在辅助上运行它,那么我会得到什么好处?或相反亦然?(意思是我应该在两个节点上运行)
如果我通过维护计划使用 SP1 和索引重建,是否可能发生损坏? 正如这里提到的
sql-server availability-groups sql-server-2014 index-maintenance
这里有很多问题询问“如何从 SQL Server 导出到 Excel”,但是每个答案以及我知道的东西都给我带来了问题(这里是 64 位系统)。
我们有一个开发人员每月运行 6 次查询(从 2010 年、2011 年等更改年份)。然后,他将结果复制并粘贴到 Excel 电子表格中。
我在将这些数据从 SQL Server 2014 导出到 Excel 时遇到问题。
这是查询:
SELECT
R.numero,
R.ano,
R.data 'data abertura',
R.datahora_conclusao 'data conclusão',
R.datahora_emissao 'data emissão',
S.[status],
(ins.INSTITUTO +
' - ' + dir.DIRETORIA +
(CASE WHEN NOT nuc.NUCLEO IS NULL THEN ' - ' + nuc.NUCLEO ELSE '' END) +
(CASE WHEN NOT equ.EQUIPE IS NULL THEN ' - ' + equ.EQUIPE ELSE '' END)) AS UNIDADE,
N.codigo 'codigo natureza …Run Code Online (Sandbox Code Playgroud) 我们已经运行 SQL Server 2014 将近一年了,但 SQL Server 2012 SP3 继续出现在 Windows 更新列表中(作为可选安装)。从以前的版本安装服务包似乎很荒谬,所以我只是忽略了它。
但是,我们最近开始遇到断言失败(有关更多信息,请参见下文),我们正在尝试解决的一件事是确保服务器已完全修补。我们安装了 2014 年最新的累积更新,但它没有解决问题或使 SP3 项目从 Windows 更新中消失。SP3 仍然不在我的关注范围内,但后来我发现了一篇Microsoft 产品支持服务博客文章,其中说使用最佳实践安全分析器来尝试解决断言失败,当我这样做时,它提出了一个警告,我们没有应用那个SP3。
所以现在我正在考虑应用该安装,但我担心我会不小心降级我的服务器 - 不是我们会完全回到 2012 年,而是一些累积更新可能会被还原,或者其他一些奇怪的行为。
(这不是我们收到的确切断言失败,但它很接近。我找不到似乎描述我们遇到的实际问题的知识库文章 - 上一句中链接的知识库与TOP N我们的有关与使用 的过程有关OFFSET X ROWS FETCH NEXT Y ROWS ONLY。实际的断言失败是SQL Server Assertion: File: <op_ppqte.cpp>, line=12258)
sql-server installation sql-server-2012 service-pack sql-server-2014
sql-server ×10
sql-server-2014 ×10
azure-vm ×1
backup ×1
dynamic-sql ×1
excel ×1
export ×1
identity ×1
installation ×1
license ×1
service-pack ×1
ssis ×1