我在 SQL Server 2005 中没有看到任何用于安排夜间备份的内置机制。有哪些工具可用于执行此任务?它们的可靠性如何?
如果您接到有关 SQL Server 性能问题的电话/页面,您首先做什么?
开始追踪?弹出 Perfmon?打开活动监视器?
这些都是有用的工具,但是您的故障排除“顺序”是什么?
我在 MSSQL 数据库中有一个表,其中包含超过 1 亿条记录,分布在大约 100 天的数据中。我需要根据其日期清除其中的一些数据,该日期是表中的一个索引字段。我曾尝试对单个日期执行 DELETE FROM,但执行时间很长,并且导致服务器性能下降。有没有更好的方法来删除如此大量的记录?其中一些数据仍然需要,所以很遗憾我不能使用截断。
非常感谢尼克
我对幽灵清理过程的理解是,每五秒它就会寻找删除索引中的幽灵记录。因此它不会使系统过载,它一次只能“清理”大约十页。
那么,这意味着它每五秒只清理大约 8 万条记录吗?似乎我的索引总是充满了幻影记录,清理工作永远不会完成。
所以,假设我运行了一次删除,可能是一百万行,而这几百万行的索引记录的大小大约为 8Gb。所以大约是 80k 差异的 100,000 倍。这是否意味着幽灵清理过程将需要 500,000 秒或几乎六天才能完成?
显然我在这里遗漏了一些东西,因为清除幻影记录需要那么长时间是没有意义的。那么达到相同索引的其他活动呢?鬼清理过程是否会导致等待,或者必须等待其他进程?
[这个问题是由我们在 OpsMgrDW 中看到的性能问题引起的,我们想了解更多关于这个过程的信息]
为新手问题道歉 - 我有一个 .mdf 文件,但我不知道如何针对它运行查询。我已经下载并安装了 SQL Server Express 2005,但不知道什么时候开始。我知道我不打算直接打开文件,但不知道我打算做什么。
有人可以一步一步地发布如何到达对文件运行 SQL 查询的点吗?
我想找到一种基于 T-SQL 脚本的方法来将我的“PROD”数据库(它是只读的并且由几个文件组组成)复制到一个可读/可写的“EDIT”数据库中,我可以在其中使用和编辑数据.
我知道复制数据库向导,并且现在正在使用它 - 但是,我更喜欢自动执行此操作,以便单个脚本可以从备份中恢复 PROD 数据库并将其复制到 EDIT 数据库。
T-SQL 中似乎没有“COPY DATABASE”命令,我也找不到任何其他方法来实现这一点——除了两次恢复备份之外。真的吗?有没有更好的方法来做到这一点?
我想做的是:
最好全部包含在一个 T-SQL 脚本中,我可以从 SSMS 和/或 sqlcmd 运行该脚本。
系统是SQL Server 2005(备份的地方)和SQL Server 2008(我恢复的地方)。
手套就在那里 - 谁来接它?:-)
马克
我们正在运行 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' 的日志文件已满。备份数据库的事务日志以释放一些日志空间。
我将 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) 我需要为我的应用程序和 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 移到客户端的中间步骤?
我一点也不知道我在做什么,因此非常感谢您能给我的任何帮助、建议、评论和参考。
先感谢您。:)
一直在网上搜索并询问我的联系人,但除了一些意见之外,我没有找到任何类型的数字、矩阵或公式来指导何时添加另一个 DBA。
是否有任何行业标准?可能是一个棘手的问题,因为每种情况都不同。一些 DBA 管理数百个生产实例的场,但这些实例都是相同的。一些 DBA 管理很少的实例,但也有开发和网络管理职责。我们都知道 DBA 的职业道路是有广度的。
一位 Microsoft 现场工程师曾告诉我,幻数是 30,即支持 30 个应用程序。有些应用程序很简单,有些则不那么简单,但如果你有多种应用程序,这位同事说,一旦你到了 30 岁,至少应该考虑再招聘一个 DBA。
显然,我希望证明我公司最近对另一位 DBA 的要求是合理的。任何帮助深表感谢。尽管我已经针对 SQL Server DBA 进行了此操作,但这只是因为我管理的仅此而已。
sql-server ×10
backup ×1
connection ×1
dbi ×1
encryption ×1
freetds ×1
performance ×1
perl ×1
restore ×1
ssl ×1