Questions tagged «sql-server»

所有版本的Microsoft SQL Server(非MySQL)。还请添加特定于版本的标记,例如sql-server-2016,因为它通常与问题相关。


3
在对驱动器进行碎片整理之前停止SQL Server服务?
我们生产的SQL Server 2005数据库的数据文件位于单独的物理驱动器上,Microsoft Windows 2003的“磁盘碎片整理程序”工具报告该驱动器碎片为99%。 我们计划在周六上午3:00进行任务以对该驱动器进行碎片整理。40分钟后作业完成,没有明显的错误。但是,驱动器仍然严重碎片化。 进行碎片整理之前,我们是否应该已停止SQL Server服务? 语境 根据上下文请求:我们拥有一个Microsoft SQL Server 2005实例(9.00.5324.00),该实例在2007年左右的Dell PowerEdge 2950硬件上运行32位Windows Server 2003(SP2),具有4GB RAM。PowerEdge 2950具有四个配置为RAID-1的68GB驱动器,用于创建两个68GB虚拟磁盘:(1)C(引导和操作系统)和D(页面文件,其他各种数据);(2)E(SQL数据)。据我所知,IT人员从未对任何这些驱动器进行碎片整理...磁盘碎片整理程序报告文件碎片率分别为66%(C),77%(D)和99%(E)。性能监视器报告以下平均结果:“分页文件:使用百分比” = 〜6.8%;“ SQL Server:缓冲区管理器-页面预期寿命” = 20秒;和“ PhysicalDisk:平均磁盘秒/写入,驱动器E” = 300到1之间。我们需要在几个月内完成急需的硬件和SQL Server升级(即,新硬件,64位Windows Server 2012、64位SQL Server 2012、12GB RAM),但由于用户性能,要尽可能减轻问题。因此,考虑对文件进行碎片整理可能对驱动器E(主SQL数据驱动器)有所帮助。 顺便说一句,上周我们拉出了两个故障驱动器并重建了阵列...不确定这很重要。我们与另一个IT团队签约以维护服务器,因此我们无法直接访问设备...我们的组织只是为服务付费。 我们可以在定期安排的维护时段(每周)中提供停机时间,也可以在必要时在夜间进行带外停机。

4
SQL Server-在SAN上分离数据,日志和TempDB文件
我有一个连接到SAN的SQL Server。我们的新存储供应商建议所有LUN跨越整个磁盘阵列,即RAID5。我通常会向SAN管理员请求3个单独的LUN(数据,日志和TempDB),但是鉴于新供应商的建议,创建单独的LUN有什么意义吗?还是如果所有内容都在一个LUN中,因为它仍然可以覆盖所有磁盘,我是否会看到相同的性能? 很棒的文章在这里,但是并不能完全解决我的确切情况:http : //www.brentozar.com/archive/2008/08/sql-server-on-a-san-dedicated-or-shared-drives/

2
SQL Server是否使用指针而不是存储重复的行?
sp_spaceused在我们的软件中执行操作之前和之后,我正在使用内置的存储过程,以查看哪些表具有行插入以及每个表的大小如何变化。 我所看到的是,在所有向其写入行的表中,只有极少数的情况表明该表在一侧增加了。显示行已添加的其他行显示此存储过程的大小没有变化。 这是唯一的不正确的情况是在对所有表执行截断后的第一个事务上。因此,对我来说,似乎SQL Server在存储重复数据时显示的是插入行,但必须仅存储指向先前相同行的指针。 有人可以确认吗?

1
无法授予,拒绝或撤消对sa,dbo,实体所有者,information_schema,sys或您自己的权限
我遇到以下错误: Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself. 当我尝试这些命令时 USE ASPState GO GRANT EXECUTE ON CreateTempTables TO [R2Server\AAOUser] GO GRANT EXECUTE ON DeleteExpiredSessions TO [R2Server\AAOUser] GO GRANT EXECUTE ON GetMajorVersion TO [R2Server\AAOUser] GO GRANT EXECUTE ON GetHashCode TO [R2Server\AAOUser] GO GRANT EXECUTE …

1
MSDB中的dbo.DTA_ *表
我在其中一台生产服务器上运行了Brent Ozar的sp_blitz。IT部门将MSDB数据库中的一些表标记为用户创建。它们都遵循dbo.DTA_ *模式。这些表是MSDB附带的,还是由某人/某人添加的?

2
完整数据库备份后,SQL Server分发数据库日志文件无法控制地增长
我们有一个合并复制环境,该环境将推动8个订阅者。一切正常。我们的分发数据库是在简单恢复模式下设置的。我们有一个维护计划,该计划将每天00:30备份所有数据库。此过程完成后,分发日志文件将在接下来的30分钟内增长,并占用硬盘驱动器上的所有剩余空间(约90GB) 然后发生的情况是,分发数据库显示为“正在恢复”,直到重新启动计算机,我们才能做任何事情。之后,我可以将日志文件缩小到2MB。 我不知道为什么会这样。日志文件每天运行约10MB。数据库大小为15GB。

5
SQL Server 2008和扩展属性
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在SQL Server中,你们将扩展属性用于什么?一些文章和博客建议将它们用于数据库及其对象的自文档编制,但我看不到它的使用方式是否正确……大多数人是否会忽略这一点?

3
SQL Server中的聚集索引与Oracle中的索引组织表
作为数据库开发人员,我正在从SQL Server过渡到Oracle,并且已经在这里找到了一些很棒的资源(如何从SQL Server DBA过渡到Oracle?以及作为DBA,我将如何从Oracle过渡到SQL Server。 ?),但是我很难找到有关在Oracle中使用索引组织表的良好信息。 在我的前世中,我们在OLTP-ish数据集市中广泛使用了SQL Server中的聚集索引,并取得了巨大的成功。索引组织表是否可以方便地用作Oracle中的工具?

3
是否可以独立安装SQL Server Management Studio Express?
我想知道是否将SQL Server Management Studio Express(主要用于Microsoft SQL Server)安装在独立的计算机上(没有任何SQL Services和其他东西)以连接到远程数据库吗? 我运行SQL Server 2012;我的一位经理告诉我,他们希望我为指定用户创建一个Web UI,以运行查询/更新数据库。这是我在PHP的能力范围内;但是我想着想,我可以提出一个建议,以消除对Web UI的需求,因为这将花费我们服务器管理员的大量时间,但是要在我们的网络计算机上安装SMSE来连接/管理数据库吗? 这可能吗?还是我必须完成创建显示模式,表等的WebUI的艰巨任务。

2
将TempDB拆分为多个文件,这些文件等于CPU的数量
《SQL Server tempdb最佳实践提高性能》一文建议,我应该将tempdb文件分割成与内核数相等的数量。因此,对于4个内核,您将获得4个文件。 通过拥有更多的文件,可以增加SQL Server一次可以推送到磁盘的物理I / O操作的数量。SQL Server可以将其下推到磁盘级别的I / O越多,数据库将运行得越快。使用标准数据库,SQL Server可以将所需的大量数据缓存到内存中。由于tempdb具有高写入特性,因此需要先将数据写入磁盘,然后才能将其缓存回内存。 尽管从理论上讲听起来不错,但总体上来说它真的那么好吗?它仅适用于IO非常高的特定系统吗?

2
云中的SQL Server事务日志
这是一个常见的做法是将事务日志(*.ldf)单独的物理磁盘的系统比数据库文件(上*.mdf,*.ndf)。 在虚拟机云环境中,可以将事务日志与其他数据文件放在相同的驱动器号上吗?在当今流行的云虚拟机环境中通常如何处理? 注意:不使用SQL Azure。使用具有完全访问权限的Windows虚拟机。

3
SQL更新状态需要很长时间/大量磁盘使用
是的,这听起来像是一个非常笼统的问题,但是我还不能将其范围缩小很多。 所以我在sql批处理文件中有一个UPDATE语句: UPDATE A SET A.X = B.X FROM A JOIN B ON A.B_ID = B.ID B有40k条记录,A有4M条记录,它们通过A.B_ID一对一相关,尽管两者之间没有FK。 因此,基本上,我正在为数据挖掘目的预先计算一个字段。尽管我为这个问题更改了表的名称,但是我没有更改该语句,实际上就这么简单。 这需要几个小时才能运行,因此我决定取消所有操作。数据库已损坏,因此我删除了它,恢复了我在运行该语句之前所做的备份,并决定使用游标进一步介绍细节: DECLARE CursorB CURSOR FOR SELECT ID FROM B ORDER BY ID DESC -- Descending order OPEN CursorB DECLARE @Id INT FETCH NEXT FROM CursorB INTO @Id WHILE @@FETCH_STATUS = 0 BEGIN …

2
SQL Server选择计数READ_COMMITTED_SNAPSHOT问题
在特定表上执行select count(*)时,似乎出现了很多死锁。我已经更改了所有必需的参数,并将它们设置为仅行锁定。 我还更改了数据库以使用READ_COMMITTED_SNAPSHOT隔离, 但是,似乎使用select count(*),其中column =?在表上触发死锁或表上的锁。 我是否正确地认为select count(*)应该只访问中间行?但是,似乎不是那样,并且我仍然遇到死锁。正确的索引编制可能会有所帮助, 问题是:即使将read_committed_snapshot设置为on,SQL Server 2008 R2也会在选择count(*)期间在表上放置共享锁吗? 谢谢

1
NVARCHAR列上的相等查询在SQL Server 2012中产生多个结果
我正在将一个宠物项目从PostgreSQL(9.2.2)移到SQL Server(2012 Standard)。 查询unicode字词时,我注意到了一个有趣的现象。给定定义: CREATE TABLE [word]( [id] [int] IDENTITY(0,1) NOT NULL, [value] [nvarchar](255) NULL ); 和数据: insert into word (value) values (N'ῥύπῳ'); insert into word (value) values (N'ἀπὸ'); insert into word (value) values (N'ἀπό'); insert into word (value) values (N'ἐπὶ'); insert into word (value) values (N'ἐπί'); insert into word …

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.