1.    每次查询的数据要有限制
     2013年1月  产品独立数据库,由于多条SQL每次查询数据超过几千条,有些超过10万条数据未分页,造成应用服务器CPU有时持续100%。

2.    禁止循环调用SQL

2011年5月  程序调用Sys_User查询,每分钟执行超过3千次,造成服务器CPU持续100%

3.    禁止使用递归方法调用SQL;

方法内如出现数据异常,极易造成查询死循环

4.    禁止每次写入大量数据
    2011年7月  深圳库导入订单的存储过程中加入一条insert语句,每次insert超过100万条,几个小时将深圳数据库服务器磁盘写满,业务无法运行

5.    禁止在事务中使用循环加入缓存;
    2011年4月  批量更新Sys_user用户后,又在事务里循环加入缓存,造成事务运行太长,严重影响系统性能。

6.    必须在语句的具体字段要明确列出

2011年3月  查询Product表数据,每次查询出全部字段,包括不需要的产品详细描述信息,造成系统网卡流量暴高。

7.    禁止使用业务逻辑大的事务
    2011年4月开始,前台客户最长等待需要超过30S完成下单,查询发现下单整个操作包在一个巨大的事务中,严重影响客户下单。

8.    禁止使用SQL游标Cursor;
    游标使用不当,会严重影响系统性能
9.    Select查询放到事务外

2011年6月  某条insert语句很慢,检查发现取表的Sequence语句放在insert的事务里,在高并发下,失败率很高。

10  禁止一次删除大量数据
     2012年11月  Customer_LoginLog表由于前台写入暴增,造成当天数据超过1500万条,SQL归档执行了6个小时未删除完,影响业务操作超过6个小时。

11,禁止主键删除再新建

2016年,Coupon表数据,有1亿多条数据,查看其主键有大量碎片,当时不想用online的方式重建,还是想先删除,后创建。因为当时是早上4点多,开发人员说基本没人使用,

就没有影响,就先删除主键,结果删除后,没想到系统有大量查询coupon的请求,而主键没有,数据库运行很慢,kill后一直有,后来没办法,禁用这个连coupon表的账户,等主键创建

成功后,再启用账户

12,禁止用系统登录触发器

2017年9月,因为黑客攻击,想在数据库做个监控,对凌晨1-7点间登录数据库的做个监控,用了SQL Server的系统登录触发器,记录登录信息,结果触发器先建好,记录信息的表没有建,导致

登录触发器审计失败,这个失败导致,其他用户登录时也会触发这个系统登录触发器,也报登录失败,登录不了,自己试了其他4台备机,也都登录不了,前台,后台和wms程序全部报错,查了

网上资料也没找到合适的方法,程序一直在报错,这时突然发现,已经登录同步实时从库(8.10),虽然不能登录,但是他已经登录了,这时我看,可以使用,我这时立刻删除刚建的触发器,执行

AlwaysON切换,把数据库从主库切到实时备库。

经历了20多分钟的重大事故终于解决。事后发现有2个解决办法,1,备份master库,出现异常时还原master库   2,CMD最小化登录数据库删除触发器

我这边发现就是还有一个登录好的实时备库,进去删除。

因为这20多分钟经历太痛苦,一直不想去模拟2种处理方案,因为后续也不会用登录系统触发器。

SQL血的教训的更多相关文章

  1. HttpClient -- 血的教训

    HttpClient -- 血的教训 千万别用httpClient 不支持httpVersion2.0 因为这个导致项目重做

  2. 血的教训 password写成passward,教训应该从首页赋值 参数名

    血的教训 password写成passward,教训应该从首页赋值 参数名

  3. LCD屏背光驱动调试心得---血的教训

    开发板:明远智睿MY-IMX6-EK140 内核源码:linux-3.14.52 背光驱动IC:MP3202 调光原理:通过开发板的核心板PWM4引脚控制MP3202的EN脚,输出不同的占空比从而达到 ...

  4. 血的教训--如何正确使用线程池submit和execute方法

    血的教训之背景:使用线程池对存量数据进行迁移,但是总有一批数据迁移失败,无异常日志打印 凶案起因 ​ 听说parallelStream并行流是个好东西,由于日常开发stream串行流的场景比较多,这次 ...

  5. 【血的教训】玩 Ubuntu 遇到的致命问题(进不了系统)及 解决方案

    [问题1] 按照文章“U盘安装Windows 7 + Ubuntu 14 双系统笔记”在 Windows 7 基础上安装了 Ubuntu 14 系统,实现双系统切换,某一天, 通过如下命令行 sudo ...

  6. ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端

    本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...

  7. FPGA笔试题集锦(血的教训)

    1.名词解释: FPGA:现场可编程门阵列,一般工艺SRAM(易失性),所以要外挂配置芯片. CPLD:复杂可编程逻辑器件,一般工艺Flash(不易失). ASIC:专用集成电路 SOC:片上系统 S ...

  8. 血的教训:Protocol http not supported or disabled in libcurl

    报错显示:http not supported or disabled in libcurl 查看配置 curl -V ---------------------------------------- ...

  9. 双系统linux+win之血的教训

    绝对不要用win的软件来直接调整linux分区!!!!! 除非你不想要这个linux分区里的数据了...

随机推荐

  1. 牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力!

    阅读本文大概需要 4 分钟. 作者:Sevenvidia https://www.zhihu.com/question/20125256/answer/324121308 什么是Lambda? 我们知 ...

  2. python 将列表里的字典元素合并为一个字典

    python 将列表里的字典元素合并为一个字典 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn. ...

  3. C# 读取配置指定Config文件--亲测通过

    直接上代码: public class ConfigUtils { public static String GetKey(String configPath,String key) { Config ...

  4. N x N 的矩阵,顺时针旋转

    第一种方法: 先打印外圈,再打印内圈 public class RotateMatrix1 { public static void rotate(int[][] matrix) { ; ; ; ]. ...

  5. NodeJS 使用内容以及模拟一个接口

    1.结合上一篇 安装完Nodejs之后 通过手动创建一个完整的NodeJs项目 2.https://www.jianshu.com/p/7b0a5d4491ba 创建一个完整的项目之后 3.下面是一个 ...

  6. FusionInsight大数据开发---HDFS应用开发

    HDFS应用开发 HDFS(Dadoop Distributed File System) HDFS概述 高容错性 高吞吐量 大文件存储 HDFS架构包含三部分 Name Node DataNode ...

  7. golang 源码文件

    Go源码文件分三个种类: 1)命令源码文件:如果一个源码文件被声明属于main代码包,且该文件代码中包含无参数声明和结果声明的main函数,则它就是命令源码文件.命令源码文件可以通过go run命令直 ...

  8. Prometheus监控学习笔记之Grafana用户权限分组

    Grafana有账户分权和管理功能,不过和一般的账户分权管理操作不一样.Grafana通过admin账户建立organization,在不通的org内配置数据源和用户,用户隶属于不通的org,只能看到 ...

  9. mvc企业微信开发全局配置

    protected void RegisterSenparcWork()     {         var isGLobalDebug = false;//设置全局 Debug 状态         ...

  10. 服务发现框架选型: Consul、Zookeeper还是etcd ?

    背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太多高深的算法,网上的资料很容易让大家明白上面是服务发现.想直接查看结论的同学,请直接跳到文末.目前,市面上有非常多的服务发现工具, ...