数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

1
重置SQL Server使用率
在我的开发环境中,我正在处理查询。为此,我需要重置SQL Server内存,计划等,这些可以确保我的查询是重置所有值的服务器上唯一的压力/工作过程。 我正在做的事情很少 触发检查点 DBCC DROPCLEANBUFFERS; DBCC免费程序; DBCC FLUSHPROCINDB DBCC FREESESSIONCACHE DBCC SQLPERF(“ sys.dm_os_wait_stats”,CLEAR); 我做得对吗?还是我需要更多东西来清除或查看最新统计信息?

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分区条目吗?

2
NUMA节点000上的PLE低,001上的高
我正在查看我们SQL Server上NUMA个节点之间的PLE(页面预期寿命),并且发现了一个相当奇怪的发行版。与001相比,NUMA节点000的PLE非常低。我不确定为什么会这样。我已经检查了环境中的其他多个SQL Server,并且其他生产服务器没有此行为。 系统正在具有256GB Ram的Dell m620上运行SQL Server 2012 Enterprise Edition。这是2插槽,6核(启用HT)的计算机。MAXDOP设置为6。AFAIK内存模块均匀地安装在CPU的内存组中 某些信息告诉我,NUMA节点000还有其他要执行的SQL任务,即其他节点,但是我忘记了在哪里听到/看到它。 @@Version 显示:Microsoft SQL Server 2012(SP1)-11.0.3412.0(X64)

6
具有只读应用程序意图的SSMS注册服务器
我们正在使用AlwaysOn进行SQL Server 2014 POC测试,其中一位用户被问到如何使用本地服务器组中注册的服务器使用ReadOnly Intent 保存SSMS的配置。这样,他们不必在每次需要访问ReadOnly副本时都键入别名。 不幸的是,与常规对象资源管理器不同,已注册服务器中没有添加ApplicationIntent选项的选项。 我从Microsoft那里碰到过有关更改RegSrvr.xml中的连接字符串的这篇文章。 https://connect.microsoft.com/SQLServer/feedback/details/786323/ssms-sql-server-management-studio-2012-missing-connection-properties-for-availability-groups 我尝试了他们的建议,当通过已注册服务器中的本地服务器连接时,它没有连接到正确的副本节点。 使用连接窗口>其他连接参数中的选项时,ReadOnly选项在对象资源管理器中可以正常工作。但是它不会保存对连接所做的更改。 有谁知道通过SSMS 使用ReadOnly Intent属性保存配置的任何替代解决方案吗?在此先感谢您的帮助。


1
为什么我的SQL Server查询在UPDATE上的行为不同于在SELECT上的行为?
我编写了一个SQL Server查询,该查询在对字段进行分区后将记录更新为具有序号。当我将其作为SELECT语句运行时,一切看起来都很不错: DECLARE @RunDetailID INT = 448 DECLARE @JobDetailID INT SELECT @JobDetailID = [JobDetailID] FROM [RunDetails] WHERE [RunDetailID] = @RunDetailID SELECT [OrderedRecords].[NewSeq9], RIGHT([OrderedRecords].[NewSeq9], 4) FROM ( SELECT [Records].*, [Records].[SortField] + RIGHT('0000' + CAST(ROW_NUMBER() OVER(PARTITION BY [Records].[SortField] ORDER BY [Records].[RunDetailID], [Records].[SortField], [Records].[PieceID]) AS VARCHAR), 4) NewSeq9 FROM ( SELECT [MRDFStorageID], [RunDetailID], …

2
获取运行缓慢的查询的统计信息
我的数据库应用程序运行许多不同的查询。我已将其设置log_min_duration_statement为1000。但是记录的查询并不总是很慢,大多数情况下它们仅花费几毫秒。 是否可以获取所有查询的统计信息,并且查询花费的时间多于1000毫秒?

9
更改数据目录后,MongoDB无法启动
我已经mongodb使用yum安装了一个实例。。现在一切正常。我使用开始了服务service mongod start。它运作良好。然后,我在配置文件中更改了data directory和log path。我再次重新启动服务器,然后启动了服务。但是我得到以下错误: Restarting mongod (via systemctl): Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalctl -xn' for details. [FAILED] 当我给systemctl status mongod.service我时,得到以下内容: Loaded: loaded (/etc/rc.d/init.d/mongod) Active: failed (Result: exit-code) since Wed 2015-03-18 11:35:56 IST; 22s ago Process: 10672 ExecStop=/etc/rc.d/init.d/mongod stop (code=exited, status=0/SUCCESS) Process: 10841 ExecStart=/etc/rc.d/init.d/mongod start …

1
SQL Server何时获取锁?
此处找到的SQL Server隔离级别列表指出,在事务内获取的写锁将保留到事务结束。但是,它没有提及何时获得这些锁。 默认情况下是否在事务开始时或仅在需要时获取锁?如果后者为真,那么在大型事务中尽可能晚执行写操作以最小化持有X锁的时间量是否有利?

1
从左侧出现第二个特定字符后删除字符串
我在表格栏中有这种类型的值 154646@8@486 45465@6464@654 等等 我该如何删除第二个@字符之后的所有内容?我需要展示 154646@8 45465@6464 我只能对所有人@但不能对第二个人 SELECT REPLACE(LEFT('45@Tra@lala', CHARINDEX('@','45@Tra@lala')-1),'_',' ') 返回45但不返回45 @ Tra 谢谢 :-)
10 sql-server 

2
使用聚簇索引时,是否读取“行外”字段?
我知道VARCHAR(MAX)/NVARCHAR(MAX)使用列时会存储数据out of the row-数据行将具有指向另一个存储“大值”位置的指针。 我有以下问题: 是存储每个字段out of the row还是仅存储一个字段max? 如果您使用clustered index表的读取整个记录,那么是否也读取了行外存储的字段? VARCHAR(MAX)或NVARCHAR(MAX)被视为“大值类型”。大值类型通常存储在“行外”。这意味着...

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

2
如何确定添加索引的成本/收益?
根据Craig Ringer的说法: 虽然在引用侧外键列上(或包括)创建索引通常是一个好主意,但这不是必需的。每个索引添加减慢DML操作略有下降,所以你在每交纳履约成本INSERT,UPDATE或DELETE。如果很少使用该索引,则可能不值得使用。 您如何确定添加索引的好处是否超过其成本? 您是否在添加索引之前/之后分析了单元测试,并检查整体性能提升?或者,还有更好的方法?

1
TSQL为什么使用变量可以使Top更快?
大家早, 我一直在研究一些中度复杂的sql,以从第三方产品数据库中“获取”某些数据,以将其显示在我们自己的内部应用程序中。 我添加了一个select来从子查询中的表中获取最高记录(如果那很有意义) 该查询花费了将近3分钟的时间,使用以下命令返回了100条记录的最终结果集 SELECT TOP 1 ... 我在网上查看了要实现的目标的改进,建议我将选择更改为使用变量,如下所示 DECLARE @topCount INT SET @topCount = 1 SELECT TOP (@topCount) ... 这将相同的查询从3分钟缩短到1秒,这太好了! 但是谁能解释为什么会这样。
10 sql-server  t-sql 

1
如何授予连接到SSIS的特权?
尝试使用dtexec.exe运行SSIS包时,出现以下错误消息: Could not load package "D:\Filename.dtsx" because of error 0xC00160AE. Description: Connecting to the Integration Services service on the computer "" failed with the following error: "Access is denied." By default, only administrators have access to the Integration Services service. On Windows Vista and later, the process must be running …

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.