标签: sql-server-2014

为开发人员授予 SSIS 权限

我在安装 SQL Server 2014 几个月后安装了 SSIS。我根据 MSDN向用户授予了权限,并重新启动了 SSMS 和 SSIS。我可以毫无问题地从客户端远程登录,但拥有系统管理员权限。

其他用户在尝试通过客户端登录时甚至看不到实例。她唯一的方法是远程登录到服务器,右键单击以管理员身份。

关于这是为什么的任何想法或建议?

编辑

这是一个创建存储过程并想要存储包的开发人员。该项目完成后将有大约 50 个包。她使用 SSIS。我现在对SSIS还不太熟悉。

sql-server permissions ssis sql-server-2014

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

SQL Server 2014 可用性组 DbMgrPartnerCommitPolicy

我的环境有 2 台 Windows Server 2012 R2 服务器,均带有 SQL Server 2014 昂贵版本。

每当 AG 中发生更改(例如:在可用性副本“SecondaryReplicaThatIRestarted”上为主数据库“AGDatabase”建立与辅助数据库的 AlwaysOn 可用性组连接)时,我会在 SQL 错误日志中收到如下错误:

来源:SPID52s

消息
DbMgrPartnerCommitPolicy::SetSyncState:00000003BFC0B0E0:1

以这样的结果结束:

Imgur:错误日志的屏幕截图

编辑:

Windows 错误日志中没有任何内容,甚至没有提到的错误,这让我相信这是 SQL 内部的某些内容泄漏到错误日志中。

您知道这可能是由什么引起的吗?我已经设置了多个与此类似的设置,这是我第一次看到它。我计划本周将 SQL 修补到 SP1,但是我在发行说明中没有看到错误。

sql-server availability-groups error-log sql-server-2014

3
推荐指数
1
解决办法
5492
查看次数

SQL Server:由干扰词导致没有搜索结果

我已通过 SQL Server 2008 的导入/导出将数据库从 SQL Server 2000 移至 SQL Server 2014,以使其兼容 2014 年的导入。到目前为止,一切正常。

我发现使用通常位于停止列表中的单词(例如文章)会破坏或破坏全文搜索中的检索并且不返回任何结果。仅使用重要的关键字会像往常一样返回结果。据我所知,在旧版本的 SQL Server 中,使用了与停止列表不同的系统。尽管我在FTData文件夹中找不到任何相关内容,因为它要么是空的,要么是带注释的。

通过 SQL Server Management Studio 检查数据库时,我发现所选数据库(在Storage下)中没有配置停止列表。我尝试根据系统停止列表添加一个新的,但这对行为没有任何影响。

什么会导致这种行为?

更新

使用的查询:

SELECT ProductID FROM SearchTable WHERE CONTAINS(*, '"word"') AND
CONTAINS(*, '"noiseword"')
Run Code Online (Sandbox Code Playgroud)

结果失败,因为在搜索查询中单词是用 AND 连接的。使用干扰词显然总是返回 false,因此不会返回任何项目。

我试图改变这种行为,但这并不能阻止它:

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO
Run Code Online (Sandbox Code Playgroud)

我将根据wBob的建议尝试重建,这可能会有所帮助

sql-server full-text-search sql-server-2014

3
推荐指数
1
解决办法
3453
查看次数

如何找出哪些进程导致数据库或数据库文件自动增长?

我有一个进程渴望 tempdb,但我正在努力识别这个进程。

\n\n

我有什么方法可以实现这一目标?

\n\n
\n

我们已收到警报,因为 Tempdb 现在已占据您之前在 T:\\ 驱动器上回收的空间。同样,磁盘上还剩余 10MB。从今天早上 10:18 开始,我可以在 REP 实例上的数据文件中看到许多自动增长事件。总共有 330 个自动增长事件,每个事件大小为 512MB,总计 168GB。

\n\n

事后很难强调什么在 Tempdb 中使用了这个空间,您是否知道今天有任何进程可能以这种方式使用 Tempdb?

\n
\n\n

/ ------------------------------------------------- ----------- \\

\n\n

确定自动增长事件发生的频率

\n\n

当 SQL Server 执行自动增长事件时,触发自动增长事件的事务必须等到自动增长事件完成后才能完成。当自动增长事件发生时,这些自动增长事件会导致您的性能略有下降。因此,最好能够适当调整数据库大小,以便很少发生自动增长事件。

\n\n

如果您对系统上自动增长事件发生的频率感兴趣,您可以使用跟踪捕获这些事件。通过了解哪些数据库正在执行自动增长事件,您可以调整这些数据库文件增长属性,以便它们执行自动增长事件的频率降低。您可以使用探查器 \xe2\x80\x9cData File Auto-grow\xe2\x80\x9d 和/或 \xe2\x80\x9cLog File Auto-grow\xe2\x80\x9d 事件来跟踪这些数据库自动增长事件。如果您运行的是 SQL Server 2005 或更高版本,则默认跟踪已捕获这两个自动增长事件。如果您还没有\xe2\x80\x99t 关闭默认跟踪,那么您可以使用默认跟踪文件来查找这些自动增长事件。如果您已关闭默认跟踪,则可以启用它,或者设置新的探查器跟踪以捕获 \xe2\x80\x9cData File Auto-grow\xe2\x80\x9d 和 \xe2\x80\x9cLog File Auto-grow \xe2\x80\x9d 事件。

\n\n

默认跟踪记录到文件中。我在清单 4 中提供了代码,向您展示如何从默认跟踪文件中提取所有自动增长事件。如果您创建自己的探查器跟踪会话来捕获这些自动增长事件,那么您将需要修改此脚本以满足您的探查器跟踪设置。

\n\n

https://www.simple-talk.com/sql/database-administration/sql-server-database-growth-and-autogrowth-settings/

\n\n

马塞洛·米奥雷利\n2014 年 3 月 11 日

\n\n
\\*--------------------------------------------------*/\nDECLARE @filename NVARCHAR(1000);\nDECLARE @bc …
Run Code Online (Sandbox Code Playgroud)

process sql-server tempdb sql-server-2014

3
推荐指数
1
解决办法
3968
查看次数

SQL Server 2014中Tempdb数据文件增长很快?

几天前,我们已经从 2012 年服务器迁移到 2014 年,我们保留了与之前相同的设置,例如我们在 Tempdb 中使用 8 个数据文件以获得更好的性能,并且全部放置在单个驱动器中。

由于这是数据仓库环境,批量加载连续运行,并且 tempdb 驱动器已满。即使数据库中有 98% 的可用空间,它也无法重用空间并导致磁盘已满。

tempdb 中没有足够的空间来保存行版本。需要缩小版本存储以释放 tempdb 中的一些空间。事务(id=239368387 xsn=1273322 spid=126 elapsed_time=1590)已被标记为受害者,如果它访问版本存储,它将被回滚。如果问题仍然存在,可能的原因是临时数据库大小不正确或事务长时间运行。请参阅 BOL 了解如何配置 tempdb 进行版本控制。

问题

  1. SQL Sever 2014 中是否有任何特定的 tempdb 设置可以避免这些问题?

  2. 对于 tempdb 性能改进有什么建议,例如启用跟踪标志 -T1118 吗?

2012 年,它只需要 64 GB,现在甚至 450 GB 也不够用。

服务器规范。

SQL Server 检测到 4 个插槽,每个插槽 15 个核心,每个插槽 30 个逻辑处理器,总共 120 个逻辑处理器;使用基于 SQL Server 许可的 120 个逻辑处理器。512 GB 内存。

tempdb sql-server-2014

3
推荐指数
1
解决办法
3610
查看次数

Count Over 根据 Order By 返回 Row_Number

基于我发现的一些有趣语法的快速问题。我有一个包含这些列的表:

ID INT,
DimBuyDetails_Id INT, 
WeekOfBuy INT,
Spots INT,
Retired BIT
Run Code Online (Sandbox Code Playgroud)

如果我运行此查询,我将得到ROW_NUMBER()而不是COUNT()

SELECT *
    , COUNT(ID) OVER (
        PARTITION BY DimBuyDetails_Id, WeekOfBuy
        ORDER BY ID --<
) AS ct
FROM Core.FactBuysPerWeek
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改该ORDER BY条款,我会得到COUNT()

SELECT *
    , COUNT(ID) OVER (
        PARTITION BY DimBuyDetails_Id, WeekOfBuy
        ORDER BY DimBuyDetails_Id, WeekOfBuy --<Changed Order by here
) AS ct
FROM Core.FactBuysPerWeek
Run Code Online (Sandbox Code Playgroud)

有谁知道是什么原因造成的?

sql-server window-functions sql-server-2014

3
推荐指数
1
解决办法
3332
查看次数

如何处理对日志传送影响最小的大表?

在需要清除或删除的日志传送数据库中有两个半大的相关表(284,6876,609 行 - 156,785,176 KB 和 4,2628,162 行 - 2,212,464 KB)。如何处理这两个表,同时最大限度地减少对日志传送的影响?

sql-server log-shipping sql-server-2014

3
推荐指数
1
解决办法
286
查看次数

具有可重复读隔离级别的死锁

尝试了解调用存储过程时可重复读隔离级别发生的死锁。

这是死锁 xml:

    <TextData>
  <deadlock-list>
 <deadlock victim="process6fac029848">
  <process-list>
   <process id="process6fac029848" taskpriority="0" logused="0" waitresource="KEY: 8:72078600230076416 (d3c590b351cd)" waittime="1171" 
            ownerId="26116633497" transactionname="delete" lasttranstarted="2021-01-07T10:35:38.317" XDES="0x12553cbe3b0" 
            lockMode="U" schedulerid="3" kpid="19776" status="suspended" spid="92" sbid="0" ecid="0" priority="0" trancount="2" 
            lastbatchstarted="2021-01-07T10:35:38.310" lastbatchcompleted="2021-01-07T10:35:38.310" lastattention="1900-01-01T00:00:00.310" 
            clientapp=".Net SqlClient Data Provider" hostname="web01" hostpid="34852" loginname="someuser" 
            isolationlevel="repeatable read (3)" xactid="26116633497" currentdb="8" currentdbname="db1" lockTimeout="4294967295" clientoption1="673316896" 
            clientoption2="128056">
    <executionStack>
     <frame procname="db1.schema.deleteSP" line="124" stmtstart="8308" stmtend="8870" 
            sqlhandle="somehandle">
UPDATE [schema].[TableName] WITH(UPDLOCK)
        SET
            Status = 1 /* STATUS_DELETED */,
            userid = @id,
            UpdateTime = GETUTCDATE()
        FROM @oldatt oa
        WHERE [TableName].[Id] = oa.Id     </frame>
    </executionStack> …
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock sql-server-2014

3
推荐指数
1
解决办法
907
查看次数

使用 XQuery 正确旋转 XML 列

我想透视 SQL XML 列的属性和值,并以有序的列和行格式显示它。

首先,这是 XML 列在 SQL 中的样子:

<Model xmlns:dsc="ModelDescriptive" xmlns:draw="ModelDraw" xmlns:display="Display" xmlns:thd="Model3D">
  <dsc:Model name="15DE">
    <dsc:Defs>
      <dsc:Materials>
        <dsc:Material ref="E-HD-AnoAno" baseRef="E-HD" type="rod" productionGroup="OPTION" />
        <dsc:Material ref="E-3L44A-CLEAR" baseRef="E-3L44A" type="piece" productionGroup="OPTION" />
        <dsc:Material ref="R-TH01" baseRef="R-TH-TH" type="rod" productionGroup="ASSEMBLY" />
        <dsc:Material ref="M-TH05" baseRef="M-TH" type="meter" productionGroup="MOLDING" />
      </dsc:Materials>
    </dsc:Defs>
  </dsc:Model>
</Model>
Run Code Online (Sandbox Code Playgroud)

...这是我的查询:

 SELECT
      x.y.value('local-name(..)', 'VARCHAR(MAX)') ParentElementName
     ,x.y.value('local-name(.)', 'VARCHAR(MAX)') Attribut
     ,x.y.value('.', 'VARCHAR(MAX)') Value
     ,Row_number() Over(Partition by x.y.value('local-name(..)', 'VARCHAR(MAX)') order by x.y.value('local-name(..)', 'VARCHAR(MAX)') ASC)  as rn
 FROM @xmlDescriptive.nodes('//*[text()], //@*') AS x(y)
 WHERE x.y.value('local-name(..)', 'VARCHAR(MAX)')= 'Material'
 ORDER BY …
Run Code Online (Sandbox Code Playgroud)

xml pivot xquery sql-server-2014

3
推荐指数
1
解决办法
73
查看次数

随着时间的推移捕获查询性能

我正在尝试随时间推移对查询性能进行趋势分析。我假设查询存储将帮助我做到这一点,但我使用的 SQL Server 版本是 2014,因此没有可用的查询存储。

有没有人对我如何捕获这些信息并将其存储在表格中以随时间变化趋势等有任何提示?

monitoring sql-server sql-server-2014

3
推荐指数
1
解决办法
251
查看次数