Questions tagged «sql-server-2008-r2»

SQL Server 2008 R2(主要版本10.50.xxxx)。请同时用sql-server标记。

1
用XQuery替换SQL Server中强类型xml元素的值
给定一个元素,在XML Schema Collection中定义如下: <xsd:element name="xid"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:maxLength value="32" /> </xsd:restriction> </xsd:simpleType> </xsd:element> 您将如何使用XQuery更新元素? 该元素位于模式集合的ns命名空间中。我一直在尝试通过以下查询更新元素: update cm.item set data.modify( 'declare namespace ns="http://www.anon.com"; replace value of (/ns:*/ns:xid)[1] with "X00011793" cast as element(ns{http://www.anon.com}:xid,#anonymous) ?') where id = 11793 但这会产生以下错误: 消息9301,级别16,状态1,第2行XQuery [cm.item.data.modify()]:在此版本的服务器中,“ cast as”不可用。请使用“投射为?” 句法。 如果我完全删除演员表并使用此查询: update cm.item set data.modify( 'declare namespace …

1
为什么在此查询中不使用主键(集群键)?
我有一个SQL Server 2008 R2表,其表结构如下所示: CREATE TABLE [dbo].[CDSIM_BE] ( [ID] [bigint] NOT NULL, [EquipmentID] [varchar](50) NOT NULL, [SerialNumber] [varchar](50) NULL, [PyrID] [varchar](50) NULL, [MeasMode] [varchar](50) NULL, [ReadTime] [datetime] NOT NULL, [SubID] [varchar](15) NULL, [ProbePosition] [float] NULL, [DataPoint] [int] NULL, CONSTRAINT [PK_CDSIM_BE] PRIMARY KEY CLUSTERED ([ID] ASC, [EquipmentID] ASC, [ReadTime] ASC) WITH …

3
谁创建了程序?(SQL Server 2008 R2)
有没有办法列出谁在SQL Server 2008中创建了某些过程? 在此SO链接中有一些答案,但来自6年之前。 我知道写下您的姓名和日期,然后开始创建程序是最好的做法,但是我在工作的地方看不到它。 如果没有办法执行此任务,是否可以使用触发器来完成此任务? 还有一个奖金问题。这是dba的工作吗?知道是谁创造的? 非常感谢你。

2
SQL Server 2008 R2分区-相同的文件组,1个文件,2个partition_numbers-帮助
我是从Brent Ozar指南中学到的,这是我第一次使用SQL Server进行分区,这真是太棒了:) 几次我遇到了一个奇怪的情况。当我跑步时: SELECT * FROM ph.FileGroupDetail ORDER BY partition_number Go 有一个相同的文件组两次显示2个不同的partition_number,一个正确地在末尾显示一个范围值,另一个在开始时显示一个空range_value。 点击这里放大图片 几个问题: 这是怎么回事,我哪里出错了? 我该如何解决该问题,这意味着如何在开始时摆脱一个分区,因为开始时我已经有一个空分区。 我曾尝试删除文件(在为空时工作)和文件组,但文件组说无法删除。 有人可以解释一下这是怎么发生的以及如何摆脱第2分区条目吗?

1
具有多个.mdf文件的数据库
我已经在网上搜索,但没有找到我想要的东西。 据我所知,问题/查询是SQL Server中的数据库应该具有一个.mdf文件,也许还有一些.ndf文件和一个.log文件。 我已经看到许多具有一个mdf和多个ndf文件的数据库。但是最近我在服务器上遇到了一个数据库,其中每个数据库都有多个mdf文件。 我备份了一些数据库,将它们移动到另一台服务器,并将主文件恢复为.mdf,所有其他文件恢复为.ndf,除了日志文件恢复为.log之外。 现在我的问题是: 一个数据库具有多个.mdf文件是否有任何智慧? 拥有多个.mdf文件是否有任何弊端? 它是 SQL Server 2008 R2 64bit Enterprise Edition 任何在正确方向上的建议或指示都将受到赞赏。谢谢。

2
删除辅助数据文件。DBCC SHRINKFILE:无法移动页面,因为它是工作表页面
我为创建了太多辅助数据文件(.ndf)tempdb。要删除多余的文件,我需要清空文件(内容将移至其他文件): DBCC SHRINKFILE('tempdbfile8', EMPTYFILE); 然后删除文件: ALTER DATABASE tempdb REMOVE FILE tempdbfile8; 但是EMPTYFILE命令返回错误: DBCC SHRINKFILE: Page 8:41920 could not be moved because it is a work table page. Msg 2555, Level 16, State 1, Line 2 Cannot move all contents of file "tempdbfile8" to other places to complete the emptyfile operation. …

1
事务隔离级别快照与截断?
我希望有人可以阐明我在SNAPSHOT隔离与TRUNCATE上没有想到的这种行为。 数据库:允许快照隔离= True;读取已提交快照快照= False。 Procedure1(从具有大量连接的长时间运行的复杂SELECT替换表foo的内容): BEGIN TRAN; TRUNCATE TABLE foo; INSERT INTO foo SELECT...; COMMIT; Procedure2(从表foo中读取): SET TRANSACTION ISOLATION LEVEL SNAPSHOT; SELECT * FROM foo; 如果在执行Procedure2的同时正在运行Procedure1,则过程2将等待LCK_M_SCH_S(根据sp_WhoIsActive)等待,直到Procedure1完成。而当Procedure2确实完成时,它将引发此异常: 快照隔离事务在数据库'DatabaseName'中失败,因为自该事务开始以来,该语句访问的对象已由另一个并发事务中的DDL语句修改。不允许这样做,因为未对元数据进行版本控制。如果同时进行元数据更新和快照隔离,则可能导致不一致。 但是,Microsoft并未将TRUNCATE列为SNAPSHOT隔离下不允许的DDL语句:http : //msdn.microsoft.com/zh-cn/library/bb933783.aspx 显然,我并没有正确理解某些东西,因为我希望程序2的最佳情况会在TRUNCATE之前立即返回表中最近提交的数据,或者最坏的情况是被程序1阻止,然后返回程序的新内容。表。你能帮我吗?

1
查询性能不佳
我们有一个很大的过程(10,000行以上),通常需要0.5-6.0秒才能运行,具体取决于要处理的数据量。在过去一个月左右的时间里,在我们使用FULLSCAN更新统计信息后,开始花费了30秒钟以上。当速度变慢时,sp_recompile会“修复”该问题,直到夜间统计作业再次运行。 通过比较慢速执行计划和快速执行计划,我将其范围缩小到了特定的表/索引。当它运行缓慢时,它估计将从特定索引返回大约300行,而当它运行速度较快时,它估计将有1行。当它运行缓慢时,在对索引执行查找后将使用表后台处理程序;而当它运行速度较快时,它将不执行表后台处理程序。 使用DBSS SHOW_STATISTICS,我在excel中绘制了索引直方图。我通常希望该图更像是“起伏的丘陵”,但相反,它看起来像一座山,最高点比该图上的其他大多数值高2x-3x。 如果我在没有FULLSCAN的情况下更新统计信息,它看起来会更正常。如果我再次使用FULLSCAN运行它,则看起来就像我上面描述的那样。 这感觉像一个参数嗅探问题,并且特别与上面的(看似)怪异的索引分布有关。 proc接受表值参数,表值参数上是否可以进行参数嗅探? 编辑:proc还需要12个其他参数,其中一些是可选的,其中两个是开始日期和结束日期。 直方图是奇数,还是我吠错了树? 我当然很愿意尝试调整查询和/或尝试调整索引。如果那是很好的解决方案,那时候我的问题更多是关于偏斜的直方图。 我应该提到这是PK IDENTITY聚集索引。我们有两个互相通信的系统,一个是旧系统,一个是新的本地系统。两个系统都存储相似的数据。为了使它们保持同步,即使将数据添加到旧系统中(完成RESEED处理),也可以在将新事物添加到旧系统中后在新系统中的此表上增加PK。因此,此列中的编号可能存在​​一些差距。记录很少删除(如果有的话)。 任何想法将不胜感激。我非常高兴收集/包含更多信息。

1
动态将列名传递给UNPIVOT
我有一个包含以下数据的表 First Second Third Fourth Fifth Sixth 2013-08-20 2013-08-21 2013-08-22 2013-08-23 2013-08-24 2013-08-25 并使用 UNPIVOT SELECT Data ,DATENAME(DW, Data) AS DayName FROM Cal UNPIVOT(Data FOR D IN ( First, Second, Third, Fourth, Fifth, Sixth )) AS unpvt 我得到以下结果 Data DayName 2013-08-20 Tuesday 2013-08-21 Wednesday 2013-08-22 Thursday 2013-08-23 Friday 2013-08-24 Saturday …


3
在另一个作业中调用SQL Server作业
是否可以调用SQL Server作业在另一个作业中运行? 我知道我们可以将作业1的所有步骤添加到作业2中,但是我不愿意这样做。首先,作业2已经很大,其次,我找不到在作业之间复制步骤的复制粘贴选项,因此手动添加步骤会很耗时。 任何建议表示赞赏。

1
查询优化:时间间隔
总的来说,我有两种时间间隔: presence time 和 absence time absence time 可以具有不同的类型(例如休息,缺席,特殊日子等),并且时间间隔可能重叠和/或相交。 这是不肯定的,只有间隔的合理组合,原始数据存在,例如。重叠的存在间隔没有意义,但可能存在。我现在尝试通过多种方法来确定出现的时间间隔-对我来说,最舒服的似乎是紧随其后的时间间隔。 ;with "timestamps" as ( select "id" = row_number() over ( order by "empId", "timestamp", "opening", "type" ) , "empId" , "timestamp" , "type" , "opening" from ( select "empId", "timestamp", "type", case when "types" = 'starttime' then 1 else -1 …

3
是否可以保证SELECT ROW_NUMBER()返回按生成的行号排序的结果?
例如考虑SQL查询: SELECT A.[Name], ROW_NUMBER() OVER(ORDER BY A.[Name] ASC) FROM [FooTable] AS A 在这里,我观察到返回的结果按A. [名称]排序。如果我将ROW_NUMBER函数中定义的排序列更改为另一列,那么结果将再次由该列进行排序。 我期望将行号分配给这些行,但是我不希望这些行以相同的标准返回排序。这仅仅是查询执行方式的副作用(就我而言,在SQL Server 2008 R2上)还是可以保证这种行为?(我找不到关于这种保证的参考)。

1
从备份初始化事务复制
在设置要复制的发布时允许使用“从备份初始化”。我们已经创建复制数据库已有好几年了,并且始终从backkup进行初始化,但是从未设置过该标志(几天前我们才第一次注意到它)。复制当然一直都没有问题。 我发现有很多命中说明需要使用此方法,但没有一个可以解释原因。 有谁知道这实际上是什么?从我的角度来看,这似乎没有必要,但我认为我必须缺少一些东西。

1
存储过程返回动态创建的表数据
简而言之,我们正在与具有调查系统的外部供应商合作。该系统不一定设计得最好,因为当您创建新调查并创建新表时,即: Tables ____ Library_1 -- table for Survey 1 SurveyId int InstanceId int Q_1 varchar(50) Library_2 -- table for Survey 2 SurveyId int InstanceId int Q_2 int Q_3 int Q_4 varchar(255) 这些表用所生成的SurveyId在名称的末尾(Library_)和问题列与所产生的QuestionId在它(结束Q_)。 为了明确起见,问题存储在单独的表中,因此尽管问题ID是连续的,但对于每个调查来说,问题ID都不从1开始。问题列将基于表中分配给它们的ID。 看起来查询起来非常简单,除了我们需要从所有调查表中提取数据以发送到另一个系统外,这就是问题所在。由于这些表是在前台添加新调查时自动创建的,最终应用程序,其他系统无法处理这种类型的结构。他们需要数据是一致的以便消费。 因此,我的任务是编写一个存储过程,该过程将从所有Survey表中提取数据并将其放置为以下格式: SurveyId InstanceId QNumber Response ________ __________ _______ ________ 1 1 1 great 1 2 1 …

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.