你最大的SQL Server错误或尴尬事件是什么?

Joh*_*som 13 t-sql sql-server sql-server-2005

你知道我在谈论的那个.

我们已经在某个时候到过那里了.你得到了那种可怕的恐惧感,而我的上帝的实现确实发生了.

当然,你现在可以笑一笑,对,所以继续和我们分享你的SQL Server意外.

如果您可以详细说明如何解决问题,以便我们可以一起从错误中吸取教训,那就更好了.

所以为了让球滚动,我会先走......

这是我早年作为初级SQL Server大师的回归.我正在围绕企业管理器竞争,履行一些管理职责.你知道它是怎么回事,查看几个日志,确保备份运行正常,一点点数据库管理,几乎关于自动驾驶的业务,并按弹出的常规提示点击回车键.

哦,等等,是"你确定要删除此表"提示.太晚了!

只是为了确认任何有抱负的DBA,删除生产表是一件非常非常糟糕的事情!

毋庸置疑,世界纪录被迅速设置为最快的数据库恢复到新的数据库,很快就会进行表迁移,哦是的.当然,其他人都不是明智的,但仍然是一个宝贵的经验教训.浓缩!

小智 49

我想每个人都在某个时候错过了DELETE或UPDATE的WHERE子句......

  • 作为偏执狂,我通常首先编写一个SELECT,运行它,检查它,然后更改为DELETE. (5认同)

Joh*_*esH 6

将500万测试人员插入生产数据库.我认为最大的错误就是让我首先对生产数据库进行写访问.:P坏dba!


cle*_*tus 6

我最大的SQL Server错误是假设它在并发性方面与Oracle一样强大.

让我解释.

谈到SQL Server中的事务隔离级别,您有两种选择:

  1. 脏读:事务可以看到未提交的数据(来自其他事务); 要么
  2. 选择阻止未提交的更新.

我相信这些来自ANSI SQL.

(2)是默认的隔离级别,(imho)是两个邪恶中的较小者.但对于任何长期运行的流程来说,这都是一个巨大的问题.我不得不批量加载数据,并且只能在数小时内完成,因为它在运行时杀死了网站(因为它插入了50万条记录需要10-20分钟).

另一方面,Oracle拥有MVCC.这基本上意味着每个事务都会看到一致的数据视图.他们不会看到未提交的数据(除非您设置隔离级别来执行此操作).它们也不会阻止未提交的事务(我对这个想法感到惊讶,据称企业数据库会认为这是可以并发的).

我只想说,这是一次学习经历.

而你知道什么? 甚至MySQL都有MVCC.

  • 工具X没有功能Y,但我认为它确实让自己看起来很愚蠢,所以为了保存脸,我把它归咎于工具. (7认同)
  • 自从2005版本读取快照隔离以来,SQL Server也有此功能 (3认同)
  • SQL更便宜.为了钱,Oracle应该自己编程 (2认同)

Rya*_*rle 6

我在一个高产量的电子商务网站上将所有价格都改为零.我不得不把网站关闭并从备份中恢复数据库..很不好意思.

幸运的是,这是一个LOOONG时间前.


SQL*_*ace 6

忘记在更新或删除时突出显示WHERE子句

脚本首先处理和检查drop依赖对象,然后在生产中运行它


Jon*_*oln 6

我正在研究大型在线业务的支付系统.数百万欧元的业务.

  • 从一位同事处获取一些脚本,其中包含一些小更新.
  • 在生产中运行它.
  • 30分钟后从帮助台获取错误报告,抱怨过去30分钟没有购买.
  • 发现所有连接都在等待释放的表锁
  • 发现我的同事的脚本以明确的BEGIN TRANSACTION开始,并希望我在最后手动输入COMMIT TRANSACTION.
  • 向老板解释为什么30分钟的销售损失.
  • 责怪自己没有正确阅读脚本文档.


Jon*_*han 5

从上周开始还原到生产实例而不是开发实例.不是早上好.