标签: sql-server-2014

比较先前记录的值

如何比较以前记录的值?

桌子:

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 将被返回。

sql-server sql-server-2014

2
推荐指数
1
解决办法
1757
查看次数

如何将数据库列表传递给 sp_MSforeachdb?

我有以下脚本,运行时给我一个逗号分隔的数据库名称列表。

        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

2
推荐指数
1
解决办法
1160
查看次数

对 VLDB 使用标准版

为了节省许可成本,我正在评估是否可以使用 VLDB 的标准版。我将概述场景:

  • 此处,“VLDB”表示 5TB。
  • 预计随着时间的推移,规模将保持稳定。
  • 几乎所有数据都在一个表中。
  • 查询和 DML 模式是一种键值类型的场景。主键只能进行单行访问。

我想知道我需要企业版做什么。我不会从分区中获得任何好处,因为我不想切换分区或将它们放在不同的存储上。数据压缩可以为我们节省 50%,但我们使用廉价存储。与昂贵的许可证相比,节省的费用微不足道。

对于 HA,我不明白为什么我不能使用已弃用但仍在工作的镜像。这并不理想,但企业版要为不明确的好处付出高昂的代价。

尽管如此,在这里使用标准版还是让我感到紧张,因为它不是普遍推荐的,而且似乎有点冒险。寻求有关这种情况的一些建议。谢谢!

sql-server license sql-server-2014 enterprise-edition

2
推荐指数
1
解决办法
111
查看次数

如何在 SQL Server AlwaysOn 中配置 SSIS

我为我的 SQL Server 设置了 AlwaysOn 可用性组。现在我想配置SSIS。我该怎么做?下面的链接提供了一些信息,但由于我不是 DBA,因此很难理解这篇文章:

AlwaysOn 可用性组和 SQL Server 作业,第 23 部分:维护计划备份和 SSIS 包

有人可以指导我在可用性组中进行 SSIS 的基本设置并解释节点之间如何同步吗?

更新

我指的是 SSIS 目录数据库 (SSISDB)

我可以在我的连接管理器中使用监听器吗?

sql-server ssis availability-groups sql-server-2014

2
推荐指数
1
解决办法
1万
查看次数

将 SQL Server 备份到 Google Drive

我在带有一个数据库的 Azure VM(Windows Server 2012 R2)上安装了 Microsoft SQL Server 2014。是否可以为我的 Google Drive 文件夹配置自动备份?也许是特殊工具或其他东西?

sql-server backup sql-server-2014 azure-vm

2
推荐指数
1
解决办法
6487
查看次数

null 是否比 iif(exists) 更好?

我试图减少我们应用程序数据库上的巨大性能问题。我们使用 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)

顺便说一句,如果您对查询的形式有任何意见或一般性建议,请随时发表评论。

sql-server sql-server-2014

2
推荐指数
1
解决办法
7704
查看次数

GUID 上的聚集索引是否比非聚集索引产生更多的碎片?

我有一个简单的表:

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

2
推荐指数
1
解决办法
2857
查看次数

调度索引重建作业

我有一个 MS-SQL 2014 SP1 - 两个节点 AlwaysOn AG(一个主节点和一个只读辅助节点)有大约 10 个数据库,总大小为 20-30GB。我有一些关于调度索引重建和统计信息收集的问题。

我计划通过维护计划每周安排一次。通常在主节点上根本没有负载的周日晚上。

我应该在主要还是在副本中运行作业?如果我只在辅助上运行它,那么我会得到什么好处?或相反亦然?(意思是我应该在两个节点上运行)

如果我通过维护计划使用 SP1 和索引重建,是否可能发生损坏? 正如这里提到的

sql-server availability-groups sql-server-2014 index-maintenance

2
推荐指数
1
解决办法
2814
查看次数

创建每月作业以从 SQL Server 2014 导出到 Excel

这里有很多问题询问“如何从 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 export excel sql-server-2014

2
推荐指数
1
解决办法
6491
查看次数

当我已经在运行 SQL Server 2014 时,我应该安装 SQL Server 2012 SP3 吗?

我们已经运行 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

2
推荐指数
1
解决办法
2177
查看次数