Questions tagged «sql-server-2005»

微软的SQL Server是一个关系数据库管理系统(RDBMS),它作为服务器运行,提供对多个数据库的多用户访问。该标签用于2005版本的问题

7
完全备份后如何减少事务日志备份的大小?
我设置了三个维护计划以在Sql Server 2005实例上运行: 每周进行数据库优化,然后进行完整备份 每日差异备份 每小时事务日志备份 每小时的日志备份通常在几百Kb到10Mb之间,具体取决于活动的级别,到星期结束时,每日差异通常会增长到250Mb左右,每周备份约为3.5Gb。 我的问题是完全备份之前的优化似乎导致下一个事务日志备份增长到完全备份大小的2倍以上,在这种情况下为8Gb,然后才恢复正常。 除了之外BACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY,是否有任何方法可以减小该日志备份的大小,或者完全不将优化记录在事务日志中,因为可以肯定的是,这些优化将在之前的完整备份中得到考虑?

7
如何检查DBCC SHRINKFILE的进度?
有没有办法找出DBCC SHRINKFILE陈述的进度? 这是我的运行方式 dbccrinkfile('main_data',250000) 我在SQL Server 2005和2008上都运行上述语句。 [更新] 这是我运行以检查进度和正在运行的文本的查询。 select T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id) , R.cpu_time, R.total_elapsed_time, R.percent_complete from sys.dm_exec_requests R cross apply sys.dm_exec_sql_text(R.sql_handle) T

3
SQL Server中的超时保存表
我正在尝试使用SSMS在SQL Server 2005中向具有大量数据的表中添加一列。 因此,我浏览到该表,选择“修改”,然后添加新列。然后,当我按保存时,出现以下警告: 保存定义对具有大量数据的表进行更改可能会花费大量时间。保存更改时,将无法访问表数据 我可以,数据库处于脱机状态,并且我一直在世界各地,所以按是。 但是,此消息大约30秒后,操作将继续超时: 无法修改表格。超时时间已到。在操作完成之前超时或服务器没有响应。 然后,当我按OK时: 用户取消了保存对话框(MS Visual Database Tools) 我不明白 我在SSMS连接对话框中和工具->选项->查询执行-> SQL Server下都将执行超时设置为0(无限)。如果只是忽略执行超时,设置时间有什么意义? 有谁知道这里使用了什么超时值,以及如何设置它?

6
如何更改SQL Server数据库的排序规则?
我正在尝试在一个归类-Latin1_General_CI_AS(标准归类)上标准化所有数据库。我有一些SQL_Latin1_General_CP1_CI_AS中的数据库。 我知道我可以使用ALTER DATABASE更改数据库排序规则,但这只会影响新对象。我的理解是,更改现有列的唯一方法是在每个表的每个列上执行ALTER COLUMN-我需要删除并重新创建所有索引才能做到这一点。 我想它看起来像这样: DROP INDEX indexname ON tablename GO ALTER TABLE tablename ALTER COLUMN columname varchar(50) COLLATE Latin1_General_CI_AS NULL GO CREATE CLUSTERED INDEX indexname ON tablename (columname ASC) 并对整个数据库中的每个varchar,char,text,nvarchar,nchar和ntext列重复一次。那将是一个巨大的 SQL脚本。 有没有更简单的方法可以执行此操作,或者有人可以建议自动创建SQL脚本的方法吗?

8
SQL Server还原备份导致错误
我在dev(Windows Server 2008上的SQL Server 2005)中有一个数据库,需要转移到prod(Windows Server 2003上的SQL Server 2000)。我的过程如下: 登录到开发人员,打开SQL Server Management Studio 右键单击数据库| 任务 备份。保留所有默认选项(完整备份等) 将.bak文件本地移动到产品(没有网络驱动器),登录到产品,然后打开SQL Server企业管理器。 右键单击“数据库”节点| 所有任务| 恢复数据库。 更改“还原为数据库”以反映相同的数据库名称。 单击“从设备”单选按钮。点击“选择设备” 单击从以下位置还原:添加...,浏览到.bak文件(小-仅6mb) 现在,我准备还原数据库,因此单击“确定”并得到以下错误: “设备'E:... bak'上的媒体族格式不正确。SQLServer无法处理该媒体族。RESTOREDATABASE异常终止。” 此错误是立即的。 我尝试了几种不同的变体-使用不同的数据库名称和日志文件名(它起源的地方)将数据库还原到开发机,创建一个空的数据库,该数据库之前具有相同的文件物理路径,并尝试还原到该数据库,制作几个不同的.bak文件,并确保在将它们上传到产品之前已通过验证。我知道一个事实,.mdf和.ldf文件的目录存在于prod上,尽管文件本身不存在。如果在单击“确定”还原之前,请转到“选项”选项卡,但出现以下错误: 错误3241:设备'E:... bak'上的媒体系列格式错误。SQL Server无法处理此媒体系列。RESTORE FILELIST正在异常终止。 有人有什么好主意吗?

7
SQL Server-强制在内存中使用DB?
我们拥有功能强大的Windows 2008 x64服​​务器(4 x 4核心CPU,32GB RAM),运行SQL Server 2005 64位。我们有一个很小的(6GB)但非常重要的数据库,在将页面缓存到内存之前,它的访问速度有些慢(使用情况是非常随机的I / O,因此给定页面在内存中以及最终用户的可能性非常低抱怨最初的缓慢)。磁盘足够快(本地15K SAS),但我猜该应用程序编写得有些笨拙(这是一个COTS解决方案),所以我想知道是否有办法“强制” SQL Server 2005中的内存中的数据库(不支持2008年)由供应商提供,所以我们还不应该升级到该版本),以帮助避免最初出现的高速缓存填充蓝调? 我当前的方法是我从脚本中的每个表运行SELECT *以获取内存中的数据页,但是此方法未缓存某些对象(索引,全文本搜索等)(并修改了脚本以查询索引和编写适当的WHERE子句进行缓存是煮沸的海洋复合物)。


7
服务器实际需要多少RAM?
我在全球部署了很多服务器。他们正在运行Windows 2003 x64和SQL Server 2005 x64,并具有6 GB的RAM。这些盒子没有最好的(甚至是可以接受的)配置,因为几年前订购它们的那个人并不真正知道他在做什么。 这些盒子相当一致地用完了内存,最终使用了页面文件,一切都变慢了。通常,提交费用为5.8GB,然后,当某人需要做一些密集的事情(例如运行报告)时,该数目就会增加。 我一直在尝试获得更多内存的权力,但是我遭到了广泛的反对(例如,使软件性能更高,所有这些服务器的成本都太高,或者证明包装盒没有足够的内存等)。 ..)。 是否有一些准则(或公式)来说明我可以向非技术人员展示一个盒子需要多少RAM,以便我们最终可以订购更多的内存?

2
找出SQL Server 2005中的哪个数据库使用多少RAM
我的一个朋友今天问我(试图平息一个烦躁的客户),您如何才能在SQL Server 2005中找出哪个数据库在给定时间使用了多少内存(在服务器的RAM中)。 那有可能吗?如果是这样-如何?您可以使用内置的SQL Server工具来执行此操作,还是需要额外的第三方选项? 由于他专用的SQL Server计算机突然使用了其4 GB RAM中的200KB,因此,他的客户全都心慌。我真的不认为这是个问题-但是由于这个人声称它或多或少是在一整夜发生的,所以他想知道是什么导致了内存使用量的增加..... 渣

4
SQL Server安装:是32位还是64位?
最近,我正在其中一台数据库服务器上执行操作系统升级,从Server 2003迁移到Server2008。DBMS是SQL Server2005。在新的Windows安装上重新安装SQL时,我去了另一台数据库服务器以验证几个的设置。 现在,我一直以为第二台服务器是Server 2003 x64 + SQL 2005 x64(据我所知),但是现在我对此表示怀疑。我现在怀疑实际上只有32位SQL,但是我想验证一下。 以下是一些详细信息: 该操作系统肯定是64位。 xp_msver显示Platform为NT INTEL X86 SELECT @@VERSION 表演 Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)... 但是sqlservr.exe在taskmgr中没有显示为'* 32',如果实际上是32位声称的话,有人知道为什么吗?尽管如此,它似乎确实已用完x86程序文件文件夹。 如果我对已确认的64位安装进行相同的检查,则会确实返回预期的64位读数,这只能证明该服务器仅以32位运行。 现在,既然如此,就会出现一个问题,即此“ 32位”安装可以使用多少内存。任务管理器报告有关sqlservr.exe的3.5GB内存使用情况(服务器的物理内存为16GB)。我怀疑根本没有配置AWE,因此如果SQL仅使用32位地址空间,则服务器的利用率将大大不足(请记住操作系统是64位)。 这个假设正确吗? 我觉得服务器应该重新安装SQL 64位才能充分利用硬件平台,但是目前该产品已投入大量生产。这将不是一件容易的事。我怀疑我们可能只需要正确配置AWE并暂时启用它(除非这是一个坏主意?)。 抱歉,这个问题有点含糊/遗漏;我不是SQL专家,只是想了解这里发生的事情。

2
SQL Server 2005/2008-多个文件/文件组-多少个?为什么?
我是一个开发人员,但我时不时会有客户没有像样的DBA来处理这些问题,因此我被要求做出决定。 在处理大小合理的SQL Server数据库(大于Northwind或AdventureWorks;大约2-4GB的数据以及索引等)时,您的策略/最佳做法是什么?您是否使用多个文件/文件组? 如果是这样:多少?又为什么呢? 您决定何时从“一个文件组用于所有内容”的方法出发的标准是什么: * database size? * database complexity? * availability / reliability requirements? * what else? 如果使用多个文件组,请使用几个?一种用于数据,一种用于索引,一种用于日志?几(几)个数据?您选择的原因是什么-为什么要使用确切数量的文件组:-) 感谢您的任何提示,指示和想法! 干杯,马克

4
为什么“ DbccFilesCompact”状态为“已暂停”?
我正在600G数据文件上运行SHRINK文件。 目前,状态报告为“暂停”,并sys.dm_exec_requests.percent_complete为DbccFilesCompact命令会报告它正在运行(但很慢) 有没有办法检查为什么它被挂起以及如何使其运行更流畅? 仅供参考 -用于状态查询的SQL查询 select T.text, R.Status, R.Command, DatabaseName = db_name(R.database_id) , R.cpu_time, R.total_elapsed_time, R.percent_complete from sys.dm_exec_requests R cross apply sys.dm_exec_sql_text(R.sql_handle) T order by Command

1
取消数据库脱机
我不小心尝试通过上下文菜单命令>任务>使离线使数据库离线。 该过程现在正在进行中,无法建立新的连接。 如何取消这个程序?


2
如何撤消分配db_datareader / db_datawriter架构的所有权?
我的意思是将SQL Server登录名分配给 db_datareader db_datawriter 数据库角色。但是,如果一会儿肚子疼又累,我会不小心将其授予用户架构所有权: 暂时忽略用户“拥有”这两个内置模式在概念上意味着什么。如果用户拥有这两个模式,则暂时忽略甚至是一个问题(例如,如果我要删除用户,内置模式将与之一起使用)。 我的问题是:如何撤消? 我随机敲击键盘上的键,结果是: 更改架构:: [db_datareader]到[db_datareader]F5 但这并没有做任何事情。因此,现在该咨询专家了。 Microsoft SQL Server 2005-9.00.5057.00(Intel X86)2011年3月25日13:50:04版权所有(c)1988-2005 Microsoft Corporation标准版

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.