标签: sql-server

如何为 Microsoft SQL Server 2005 自动运行夜间备份?

我在 SQL Server 2005 中没有看到任何用于安排夜间备份的内置机制。有哪些工具可用于执行此任务?它们的可靠性如何?

backup scheduled-task sql-server sql-server-2005

7
推荐指数
1
解决办法
4957
查看次数

SQL Server 性能分类?

如果您接到有关 SQL Server 性能问题的电话/页面,您首先做什么?

开始追踪?弹出 Perfmon?打开活动监视器?

这些都是有用的工具,但是您的故障排除“顺序”是什么?

performance sql-server

7
推荐指数
1
解决办法
826
查看次数

MSSQL 大删除

我在 MSSQL 数据库中有一个表,其中包含超过 1 亿条记录,分布在大约 100 天的数据中。我需要根据其日期清除其中的一些数据,该日期是表中的一个索引字段。我曾尝试对单个日期执行 DELETE FROM,但执行时间很长,并且导致服务器性能下降。有没有更好的方法来删除如此大量的记录?其中一些数据仍然需要,所以很遗憾我不能使用截断。

非常感谢尼克

sql-server sql-server-2005

7
推荐指数
1
解决办法
2925
查看次数

幽灵清理

我对幽灵清理过程的理解是,每五秒它就会寻找删除索引中的幽灵记录。因此它不会使系统过载,它一次只能“清理”大约十页。

那么,这意味着它每五秒只清理大约 8 万条记录吗?似乎我的索引总是充满了幻影记录,清理工作永远不会完成。

所以,假设我运行了一次删除,可能是一百万行,而这几百万行的索引记录的大小大约为 8Gb。所以大约是 80k 差异的 100,000 倍。这是否意味着幽灵清理过程将需要 500,000 秒或几乎六天才能完成?

显然我在这里遗漏了一些东西,因为清除幻影记录需要那么长时间是没有意义的。那么达到相同索引的其他活动呢?鬼清理过程是否会导致等待,或者必须等待其他进程?

[这个问题是由我们在 OpsMgrDW 中看到的性能问题引起的,我们想了解更多关于这个过程的信息]

sql-server sql-server-2008

7
推荐指数
1
解决办法
5131
查看次数

打开 .mdf 文件

为新手问题道歉 - 我有一个 .mdf 文件,但我不知道如何针对它运行查询。我已经下载并安装了 SQL Server Express 2005,但不知道什么时候开始。我知道我不打算直接打开文件,但不知道我打算做什么。

有人可以一步一步地发布如何到达对文件运行 SQL 查询的点吗?

sql-server sql-server-2005

7
推荐指数
2
解决办法
1万
查看次数

复制数据库的 T-SQL 脚本

我想找到一种基于 T-SQL 脚本的方法来将我的“PROD”数据库(它是只读的并且由几个文件组组成)复制到一个可读/可写的“EDIT”数据库中,我可以在其中使用和编辑数据.

我知道复制数据库向导,并且现在正在使用它 - 但是,我更喜欢自动执行此操作,以便单个脚本可以从备份中恢复 PROD 数据库并将其复制到 EDIT 数据库。

T-SQL 中似乎没有“COPY DATABASE”命令,我也找不到任何其他方法来实现这一点——除了两次恢复备份之外。真的吗?有没有更好的方法来做到这一点?

我想做的是:

  1. 从磁盘开始还原,进入“MyPROD_Database”
  2. 完成后,我想复制刚刚恢复的数据库到“MyEDIT_Database”
  3. 作为最后一步,我想将我的 PROD 数据库的文件组设置为只读

最好全部包含在一个 T-SQL 脚本中,我可以从 SSMS 和/或 sqlcmd 运行该脚本。

系统是SQL Server 2005(备份的地方)和SQL Server 2008(我恢复的地方)。

手套就在那里 - 谁来接它?:-)

马克

restore sql-server

7
推荐指数
2
解决办法
2万
查看次数

帮助!数据库“tempdb”的日志文件已满。备份数据库的事务日志以释放一些日志空间

我们正在运行 SQL Server 2000。在我们的数据库中,我们有一个包含大约 750,000 行的“订单”表。我们可以在这个表上执行简单的 SELECT 语句。但是,当我们想要运行像 SELECT TOP 100 * FROM Orders ORDER BY Date_Ordered DESC 这样的查询时,我们会收到以下消息:

错误:9002,严重性:17,状态:6 数据库 'tempdb' 的日志文件已满。备份数据库的事务日志以释放一些日志空间。

我们的数据库中有其他表,它们的大小与表中的记录数量相似(即 700,000 条记录)。在这些表上,我们可以运行任何我们想要的查询,而且我们永远不会收到有关“tempdb 已满”的消息。

为了解决这个问题,我们备份了我们的数据库,缩小了实际数据库,同时缩小了 tempdb 系统数据库中的数据库和文件,但这并没有解决问题。

我们的日志文件的大小设置为自动增长。

我们不确定下一步要去哪里。有什么想法为什么我们仍然可能会收到此消息?

错误:9002,严重性:17,状态:6 数据库 'tempdb' 的日志文件已满。备份数据库的事务日志以释放一些日志空间。

sql-server

7
推荐指数
1
解决办法
4367
查看次数

Perl TDS 字符集

我将 FreeTDS 驱动程序与 DBD::Sybase 一起使用,连接到 MS SQL Server。当我查询某些记录的某些值时,出现此错误:

DBD::Sybase::st fetchrow_arrayref failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (9) NUMBER = (99)
Server , database 
Message String: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?').
Run Code Online (Sandbox Code Playgroud)

这似乎发生在包含特殊 Windows 字符集字符的记录中,例如从人们的 Outlook 和 Word 消息中复制和粘贴的卷曲引号。

不幸的是,我对这个数据库没有任何控制权;清理输入的方式显然是要走的路,但对我来说不可用。

我需要更改哪些 FreeTDS 设置才能成功查询这些记录?

附加信息:

查询在 tsql 中运行良好。我只通过 Perl 的 DBD::Sybase 接口得到这个错误。(我应该通过其他方式进行测试吗?我还没有安装 PHP 或 Python 的专业知识。我有 jTDS 并且可以使用它,但我认为这是一个完全不同的实现,而不是 FreeTDS 的接口。)

添加

client charset = …
Run Code Online (Sandbox Code Playgroud)

perl sql-server freetds dbi

7
推荐指数
1
解决办法
4393
查看次数

SQL Server 2008 中的证书

我需要为我的应用程序和 Sql Server 2008 之间的传输实现 SSL。

我使用的是 Windows 7、Sql Server 2008、Sql Server Management Studio,我的应用程序是用 c# 编写的。

我试图按照 MSDN 页面上的创建证书以及“特定客户端的加密”下的这个页面进行操作,但我感到非常困惑。我需要一些小步骤才能在成功实施加密的道路上走得更远。

首先,我不了解MMC。我在那里看到很多证书......这些证书是我应该用于我自己的加密还是用于已经存在的东西?另一件事,我假设所有这些证书都是位于我本地计算机上的文件,那么为什么会有一个名为“个人”的文件夹?

其次,为了避免上述问题,我做了一个自签名程序集的小实验。如上面的 MSDN 链接所示,我使用在 SSMS 中执行的 SQL 创建了一个自签名证书。然后我使用以下连接字符串进行连接:

 Data Source=myServer;Initial Catalog=myDatabase;User ID=myUser;Password=myPassword;Encrypt=True;TrustServerCertificate=True
Run Code Online (Sandbox Code Playgroud)

它连接,工作。然后我删除了我刚刚创建的证书,它仍然有效。显然它从来没有做任何事情,但为什么不呢?我如何判断它是否真的“有效”?我想我可能错过了(以某种方式?)将文件从 SSMS 移到客户端的中间步骤?

我一点也不知道我在做什么,因此非常感谢您能给我的任何帮助、建议、评论和参考。

先感谢您。:)

ssl encryption connection ssl-certificate sql-server

7
推荐指数
1
解决办法
6657
查看次数

什么时候该聘请另一个 SQL Server DBA?

一直在网上搜索并询问我的联系人,但除了一些意见之外,我没有找到任何类型的数字、矩阵或公式来指导何时添加另一个 DBA。

是否有任何行业标准?可能是一个棘手的问题,因为每种情况都不同。一些 DBA 管理数百个生产实例的场,但这些实例都是相同的。一些 DBA 管理很少的实例,但也有开发和网络管理职责。我们都知道 DBA 的职业道路是有广度的。

一位 Microsoft 现场工程师曾告诉我,幻数是 30,即支持 30 个应用程序。有些应用程序很简单,有些则不那么简单,但如果你有多种应用程序,这位同事说,一旦你到了 30 岁,至少应该考虑再招聘一个 DBA。

显然,我希望证明我公司最近对另一位 DBA 的要求是合理的。任何帮助深表感谢。尽管我已经针对 SQL Server DBA 进行了此操作,但这只是因为我管理的仅此而已。

sql-server

7
推荐指数
1
解决办法
618
查看次数