Questions tagged «sql-server-2012»

SQL Server 2012(主要版本11.00.xxxx)。还请标记sql-server。

1
选择按值均匀分布的分组数据
我想从一个表中选择4组数据,这些数据具有各组中值的总和,并且分布均匀。我确信我对它的解释不够清楚,所以我将尝试举一个例子。 在这里,我使用NTILE(4)创建4个组: SELECT Time, NTILE(4) OVER (ORDER BY Time DESC) AS N FROM TableX Time - N ------------- 10 - 1 9 - 2 8 - 3 7 - 4 6 - 1 5 - 2 4 - 3 3 - 4 2 - 1 1 - 2 为了简便起见,在上面的查询和结果中,其他列已被省略。 因此,您还可以看到以下组: …

1
如何在NT SERVICE \ MSSQLSERVER帐户上运行SQL服务(如果该服务先前在LocalSystem上运行)
最近,仅出于实验目的,我将服务器设置中的默认(C:...)data \ log文件路径重新定位到新位置(G:\ DBA)。 然后,我将以前存在的数据库的data \ log文件移到了新位置(G:\ DBA)并重新启动了SQL服务。从那时起,每当我创建数据库时,它就会按预期工作,即在新位置创建数据\日志文件(很酷...)。 但是问题是,我看到我以前所有的现有数据库都处于RecoveryPending状态,并且还出现了诸如Access Denned的错误。 考虑到运行SQL的服务帐户(NT SERVICE \ MSSQLSERVER)无法访问新位置(G:\ DBA),我在计算机管理控制台中将登录帐户更改为SQL服务的本地系统。现在我看到所有数据库都很好。 但是,我想在NT SERVICE \ MSSQLSERVER(默认实例)服务帐户上运行我的sql服务。我尝试通过为NT SERVICE \ MSSQLSERVER授予对G:\ DBA \的完全访问权限,但是没有用。如果要在NT SERVICE \ MSSQLSERVER服务帐户上运行我的SQL服务,请帮我做什么。我是这个领域的初学者。请帮帮我。 提前致谢。。。

1
日志传送SQL Server 2012
我是一家没有DBA的小商店的开发人员,并且我正在尝试使用sql server 2012进行日志传送。我正在尝试从事务系统到新的数据仓库的报告卸载,并将此数据库用作暂存区。 我运行了日志传送向导,并且每次都执行主备份和文件复制作业。辅助还原作业似乎随机失败。 主服务器只有一个事务日志作业。差异备份已禁用(不确定是否重要),但是具有完整备份。 辅助服务器是全新安装,没有维护计划,备份或活动用户。 有没有办法强制备份恢复同步,或者始终确保备份保持同步? 看起来太脆弱了。请指教。 以下是已编辑的日志: *Starting transaction log copy. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7' Retrieving copy settings. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7' Retrieved copy settings. Primary Server: '', Primary Database: 'db', Backup Source Directory: '\\server\folder', Backup Destination Directory: '\\server\folder', Last Copied File: '\\server\folder\db_20160105070002.trn' Starting transaction log restore. Secondary ID: 'b58d7ce8-2fd7-4cec-b5bd-f3c5e5d3c0f7' …

2
更新大小为5k的行时出现8k行溢出错误
我正在尝试将具有5k大小的一行的目标表也更新为5k的行。 由于是一行,因此很容易知道行的实际大小: select * from sys.dm_db_index_physical_stats(DB_ID('RODS_HSD_ES'), OBJECT_ID(N'TBL_BM_HSD_SUBJECT_AN_148_REPRO'), NULL, NULL, 'DETAILED') 复制 自创建以来,表未更改。没有看到任何原因导致它失败。有想法吗?

3
更新WHERE子句以检查值是否不在单独的表中
我有一个使用WHERE子句的查询,并且碰巧在此表的许多查询中使用了完全相同的WHERE子句(等)。 查询是: SELECT DATENAME(DW, [AtDateTime]) AS [Day of Week] ,COUNT(*) AS [Number of Searches] ,CAST(CAST(COUNT(*) AS DECIMAL(10, 2)) / COUNT(DISTINCT CONVERT(DATE, [AtDateTime])) AS DECIMAL(10, 2)) AS [Average Searches per Day] ,SUM(CASE WHEN [NumFound] = 0 THEN 1 ELSE 0 END) AS [Number of Searches with no Results] ,CAST(CAST(SUM(CASE WHEN [NumFound] …

2
数据库引擎被盗的服务器内存过高
我从系统中心运营经理(SCOM)得到错误。 如何解决这个错误? SQL DB 2012引擎被盗服务器内存太高。 我运行查询并获得以下计数器: ╔═══════════════════════════════╦═════════════╗ ║ Stolen Server Memory (MB) ║ 7354.773437 ║ ║ Lock Memory (MB) ║ 106.195312 ║ ║ Free Memory (MB) ║ 64.632812 ║ ║ Connection Memory (MB) ║ 24.203125 ║ ║ Log Pool Memory (MB) ║ 14.085937 ║ ║ Optimizer Memory (MB) ║ 2.351562 …

1
如何从以下查询中获取层次结构值?
我有一个名为的表Category,其中有一个名为的列CategoryID。同一张表中有一个引用列,称为fParentCategoryID。 我需要用逗号分隔所有类别ID及其子类别ID。例如-如果父类别ID为10,而父类别ID为20,则我打印类别ID 20时,我需要同时打印1和10作为其父,并以逗号分隔。 我尝试了以下查询,但我得到NULL了ParChild专栏。请帮忙。 ;WITH cteReports AS ( SELECT c.CategoryID, c.fParentCategoryID, [level] = 1, ParChild=cast(CAST(c.fParentCategoryID AS VARCHAR(200)) + ',' + CAST(c.CategoryID AS VARCHAR(200)) AS VARCHAR(MAX)) FROM retail.Category c WHERE c.fParentCategoryID is NULL UNION ALL SELECT c.CategoryID, c.fParentCategoryID, [level] + 1, ParChild = ParChild + ',' + CAST(c.CategoryID AS VARCHAR(200)) FROM …

1
为什么这两个HADR DMV报告不同的状态?
SQL Server 2012(11.0.5058.0)企业版 我们在2(HA)+1(DR)群集中有8个可用性组,而我们的监视DMV正在报告使我感到困惑的结果。为HA和DR配置了6个可用性组,仅为HA配置了1个可用性组,仅为DR配置了1个可用性组。 6个HA / DR可用性组中的每个具有“ SQLB”作为主副本,“ SQLA”作为辅助(同步)HA副本,而“ SQLC”作为辅助(异步)副本。 在两个次级上: SELECT dhags.group_id, dhags.synchronization_health_desc FROM sys.dm_hadr_availability_group_states dhags 报道说,所有可用性组复制同步健康是NOT_HEALTHY和 select replica_id,synchronization_health_desc from sys.dm_hadr_availability_replica_states 报告所有副本的同步运行状况为HEALTHY。 主副本报告所有运行状况为的可用性组和副本HEALTHY。 虽然我了解一个报告有关副本同步运行状况,而另一些报告有关AG同步运行状况,但对我来说,如果更精细的(AG)状态不健康,那将影响更广泛上下文(副本)的整体运行状况,这似乎是合乎逻辑的。我找不到描述如何确定每个级别的运行状况的MSDN文档。 为什么辅助服务器报告NOT_HEALTHY可用性组同步运行状况,而HEALTHY副本服务器同步运行状况,为什么这与主数据库的报告不同?

3
当使用sp_MSForEachDB遍历数据库时,IF语句不跳过TempDB
[SQL Server 2012 SP2 EE] 为什么以下脚本给我一个与tempdb有关的错误? exec sp_MSForEachDB ' IF ( (select database_id from sys.databases where name = ''?'') > 4) BEGIN ALTER AUTHORIZATION ON DATABASE::? TO [sa]; ALTER DATABASE [?] SET RECOVERY SIMPLE; END' 这是我得到的错误: Msg 5058, Level 16, State 1, Line 5 Option 'RECOVERY' cannot be set in …

1
如何终止等待IO_COMPLETION的暂停的SQL Server事务?
我们有一个已运行5个小时以上的交易。我们的磁盘空间不足。会话已被终止,但仍在等待IO_COMPLETION。实际上,wait_type刚刚更改为PAGEIOLATCH_EX。如何终止已暂停的SQL Server事务?我不担心丢失数据,因为所有数据都可以重新填充。 session_id: 54 STATUS: suspended blocked by: 0 wait_type: PAGEIOLATCH_EX Elapsed Time (in Sec): 19750.420000 open_transaction_count: 2

1
在SQL Server中合并行大小溢出-“无法创建行大小。”
我尝试将数据合并到的目标表有〜660列。合并的代码: MERGE TBL_BM_HSD_SUBJECT_AN_1 AS targetTable USING ( SELECT * FROM TBL_BM_HSD_SUBJECT_AN_1_STAGING WHERE [ibi_bulk_id] in (20150520141627106) and id in(101659113) ) AS sourceTable ON (...) WHEN MATCHED AND ((targetTable.[sampletime] <= sourceTable.[sampletime])) THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (...) 我第一次运行此程序(即,当表为空时)成功,并插入了一行。 我第二次使用相同的数据集运行此错误,但返回错误: 无法创建大小为8410的行,该行大于允许的最大行大小为8060。 为什么第二次尝试合并已经插入的同一行却导致错误。如果该行超过最大行大小,则可能无法将其插入到第一位。 因此,我尝试了两件事(并成功!): 从合并语句中删除“未匹配时”部分 在我尝试合并的同一行上运行更新语句 为什么使用合并更新不会成功,而插入却成功,直接更新也不会成功? 更新: …

2
Microsoft SQL Server 2012镜像断开连接
我有一些Microsoft SQL Server 2012镜像,没有见证人处于异步模式,这些镜像偶尔会断开连接。我正在运行SQL Server 2012 11.0.5058。看着镜子那边的原木,我看到了 无法分配BUF:FAIL_BUFFER_ALLOCATION 1 有一堆记忆库消息 错误:802,严重性:17,状态:0。 缓冲池中没有足够的可用内存。 错误:1454,严重性:16,状态:1。 数据库镜像将被挂起。服务器实例“实例”在充当数据库“数据库”的镜像伙伴时遇到错误802,状态0,严重性17。数据库镜像伙伴可能会尝试从错误中自动恢复并恢复镜像会话。有关更多信息,请查看错误日志以获取其他错误消息。 任何有助于检查镜后为什么挂起然后断开连接的帮助都将受到赞赏。在此之后,我可以重新建立镜像,它们可以正常工作几天,然后再次发生。

2
SQL Server累积更新-在Windows Update中不可见
我刚刚在WS2008R2 / SQL2012实例上安装了所有可能的Windows更新。当我跑步 SELECT @@VERSION 我懂了 Microsoft SQL Server 2012 - 11.0.5058.0 (X64) May 14 2014 18:34:29 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) 根据 http://sqlserverbuilds.blogspot.com/ 在Microsoft网站和Microsoft网站上,有4个针对SQL Server 2012 SP2的累积更新可用,而最新版本为11.00.9000。 Windows Update为什么也没有获得累积更新?我应该手动下载并安装它们吗?


3
持续收到消息:分配页面失败:FAIL_PAGE_ALLOCATION 540
在以下方面,我将不胜感激,我做了一些谷歌搜索,但是还没有解决这个问题。 我在SQL日志“分配页面失败:FAIL_PAGE_ALLOCATION 540”中始终收到一条消息,然后是转储,我将其添加到此问题的末尾。 供您参考,构建为: 在vCenter上运行的虚拟服务器 Windows Server 2008 R2 64位SQL Server 2012 SP1 Enterprise(11.0.2100)8GB RAM SQL Server最大和最小内存设置为6144 MB 该服务器是2节点可用性组的一部分,这是当前的主节点。 该实例托管Microsoft SharePoint的数据库 我运行了一个Perfmon跟踪24小时,该跟踪仅显示PLE在一次转储之后下降,然后又上升。没什么特别奇怪的。 SQL Server仍在运行。 从SQL日志中提取: 10/03/2014 09:59:52,spid866,Unknown,CACHESTORE_XMLDBELEMENT (node 0) KB<nl/>---------------------------------------- ----------<nl/>VM Reserved 0<nl/>VM Committed 0<nl/>Locked Pages Allocated 0<nl/>SM Reserved 0<nl/>SM Committed 0<nl/>Pages Allocated 8 10/03/2014 09:59:52,spid866,Unknown,CACHESTORE_XMLDBTYPE (node 0) KB<nl/>---------------------------------------- ----------<nl/>VM …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.