Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 您最大的SQL Server错误或尴尬事件是什么?_Sql Server_Sql Server 2005_Tsql - Fatal编程技术网

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

Sql server 您最大的SQL Server错误或尴尬事件是什么?,sql-server,sql-server-2005,tsql,Sql Server,Sql Server 2005,Tsql,你知道我说的那个 我们都曾在某个时候去过那里。你会有一种可怕的恐惧感,并且意识到,哦,我的天哪,这真的发生了 当然你现在可以笑了,对吧,所以继续和我们分享你的SQL Server灾难吧 如果你能详细说明你是如何解决问题的,这样我们就能一起从错误中吸取教训,那就更好了 所以为了让球滚起来,我会先 那是在我作为初级SQL Server专家的早年。我在企业经理身边跑来跑去,履行一些管理职责。您知道它是如何工作的,检查一些日志,确保备份正常运行,进行一些数据库管理,在autopilot上进行业务操作,并

你知道我说的那个

我们都曾在某个时候去过那里。你会有一种可怕的恐惧感,并且意识到,哦,我的天哪,这真的发生了

当然你现在可以笑了,对吧,所以继续和我们分享你的SQL Server灾难吧

如果你能详细说明你是如何解决问题的,这样我们就能一起从错误中吸取教训,那就更好了

所以为了让球滚起来,我会先

那是在我作为初级SQL Server专家的早年。我在企业经理身边跑来跑去,履行一些管理职责。您知道它是如何工作的,检查一些日志,确保备份正常运行,进行一些数据库管理,在autopilot上进行业务操作,并在弹出的常见提示中按enter键

哦,等等,是不是出现了“您确定要删除此表”的提示。太晚了

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


不用说,数据库恢复到新数据库的速度迅速创下了世界纪录,紧接着是表迁移,哦,是的。当然,其他所有人都没有变得更聪明,但仍然吸取了宝贵的教训。集中精神

我想每个人都在某个时候错过了删除或更新的WHERE子句…

我看到很多其他人错过了
WHERE
子句


我自己总是先键入
WHERE
子句,然后返回到行的开头并键入查询的其余部分:)

列可以为空,参数值无法检索正确的信息…

将500万测试人员插入到生产数据库中。我认为最大的错误是首先让我拥有对生产数据库的写访问权糟糕的dba

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

让我解释一下

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

  • 脏读:事务可以看到未提交的数据(来自其他事务);或
  • 选择阻止未提交的更新
  • 我相信这些来自ANSI SQL

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

    另一方面,Oracle拥有MVCC。这基本上意味着每个事务都将看到一致的数据视图。他们不会看到未提交的数据(除非您将隔离级别设置为这样做)。他们也不阻止未提交的事务(我被一个据称企业数据库会认为在并发基础上可以接受的想法震惊了)。 可以说,这是一次学习经历


    你知道什么甚至MySQL也有MVCC。

    我将一个大容量、生产型电子商务网站的所有价格都改为零。我不得不关闭站点并从备份中恢复数据库。。非常难看


    幸运的是,那是很久以前的事了。

    谢天谢地,在你意识到使用事务真的是非常非常琐碎之前,我们只犯了一个错误。我以前修改过数千条关于事故的记录,幸运的是有回卷


    如果您在没有彻底测试脚本的情况下查询实时环境,那么我认为尴尬应该是鲁莽的,或者可能是不专业的。

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


    编写过程脚本并首先检查依赖于删除的对象,然后在生产环境中运行此操作

    我曾经与一位初级开发人员合作,他感到困惑,在表上称为“删除”而不是“删除”

    恢复备份是一个漫长的夜晚


    编辑:我应该提到,这是在一个生产环境中,表中充满了数据…

    就像zabzonk所说的,我在一天中忘记了一两次更新时的WHERE子句。

    最大的错误是让开发人员“写”访问生产数据库
    许多开发和测试记录被插入/覆盖并备份到生产中,直到(我!)明智地建议只允许读取访问

    开始从上周恢复到生产实例而不是开发实例。早上不好。

    有点像SQL server相关。我记得了解到始终处理SqlDataReader是多么重要。我有一个在开发过程中运行良好的系统,并且碰巧运行在ERP数据库上。在生产中,它关闭了数据库,因为我认为它足以关闭SqlConnection,并且有数百个(如果不是数千个)打开的连接。

    我们有一个旧的应用程序,它不能非常有效地处理与HR数据库的名称更新同步,这主要是因为它们键入标题更改的方式。无论如何,某位女士结婚了,我不得不写一个数据库更改请求来更新她的姓氏,我忘记了where子句,并且该应用程序中的每个人的名字现在都是Allison Smith。

    我正在一家大型在线企业的支付系统上工作。数百万欧元的生意

    • 从同事那里获取一个脚本,并进行一些小的更新
    • 在生产上运行它
    • 30分钟后从帮助台收到错误报告,抱怨在过去30分钟内没有购买
    • 发现所有连接都在等待释放表锁
    • 发现我同事的脚本以显式BEGIN事务开始,并希望我在最后手动键入COMMIT事务
    • 向老板解释为什么损失了30分钟的销售时间
    • 怪我自己没读
      psql> UPDATE big_table SET foo=0; WHERE bar=123
      
      psql> UPDATE table SET WHERE foo='bar';