My Life My Dream!

守信 求实 好学 力行
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  SQL Server

摘要:decimal类型的算术运算注意使用合理的精度,容易导致小数精度丢失。 declare @p1 decimal(28, 8), @p2 decimal(38,2) set @p1 = 1.2345 set @p2 = 1.1 SELECT @p1 + @p2 -- 期望得到 2.3345,实际得到的 阅读全文

posted @ 2022-12-09 15:41 召冠 阅读(546) 评论(0) 推荐(0) 编辑

摘要:通用表表达式(CTE,COMMON TABLE EXPRESSION) 通用表表达式(CTE)是标准的SQL语法,本质上是临时命名的结果集。CTE最初于1999年出现在SQL标准(即所谓的SQL-99标准),然而第一个实现好像是在出现在2007年的SQL Server 2008 SQL通常在面向过程 阅读全文

posted @ 2021-11-01 13:02 召冠 阅读(173) 评论(0) 推荐(0) 编辑

摘要:对于支持多种数据库平台及各类字符集的通用产品,可变字符类型会是个未预知的坑,在此记录。取各种制约条件的最严约束如下: 1、varchar/nvarchar类型的最大长度不能超过1300(nvarchar在dm环境映射为varchar),如果需要更大空间请选择Clob/Text 2、数据表所有字段占用 阅读全文

posted @ 2021-08-11 07:40 召冠 阅读(206) 评论(0) 推荐(0) 编辑

摘要:SQL Server 2014 一个项目数据库做大数据量delete 长时间未完成,执行kill无响应后,运维人员对SQL Server进行了强制重启。重启后有时该数据库处于无法访问状态,再重启(关闭Server服务,等待3分钟后启动)有时可以访问数据库,但该库中与最初delete有关的几个数据表无 阅读全文

posted @ 2021-08-10 16:44 召冠 阅读(619) 评论(0) 推荐(0) 编辑

摘要:在复杂业务环境,有时从用户角度发现数据状态不一致的情况,sqlserver profiler提供了跟踪所有SQL及对应的事务Id的跟踪机制,完整且客观的反映了的应用发过来的所有请求,通过它可以有效定位问题原因。注意事项:1、 Profiler跟踪对业务系统的性能有影响,具体跟系统负载和磁盘性能有关,请谨慎使用2、 开启前请确认有足够的可用磁盘空间,或定时转移产生的历史跟踪数据3、 设置最大文件大小 阅读全文

posted @ 2021-03-07 17:28 召冠 阅读(756) 评论(0) 推荐(0) 编辑

摘要:SQL Server数据库有登录名、用户、架构、角色等概念,在此不重复解释。 其中架构名,原则上是不允许修改的(重命名),但当特殊业务场景需要时,可以通过创建新架构名,然后批量修改对象的架构来实现。 -- ALTER SCHEMA 新架构 TRANSFER 旧架构.对象名称 ALTER SCHEMA 阅读全文

posted @ 2021-03-07 16:59 召冠 阅读(996) 评论(0) 推荐(0) 编辑

摘要:通过常用的两种方式,都没有看到原始SQL脚本 select t.spid, t.kpid, t.blocked, t.status, t.lastwaittype, t.waitresource, t.waittime, t.open_tran , DB_NAME(t.dbid) DbName, t 阅读全文

posted @ 2021-02-22 21:43 召冠 阅读(1367) 评论(0) 推荐(0) 编辑

摘要:今天中午windows提示更新系统补丁并重启后发现,本地的SQL Server服务器没有正常启动,手工启动sqlserver也失败了,报错:找不到ERRORLOG文件及相应目录。很是奇怪。强制创建该目录后,再次启动sqlserver,又报错找不到master.mdf文件。经eventvwr和process moniter找到注册表信息貌似被修改到了默认的C盘缺省目录。手工修改注册表中sqlserv... 阅读全文

posted @ 2019-03-19 20:58 召冠 阅读(3713) 评论(0) 推荐(0) 编辑

摘要:请重视并正确配置sqlserver实例及数据库的参数,一般化的配置推荐如下: 1、数据和日志文件的初始大小分别设置为10G和2G,均设置为按照固定64/128M大小增长,不限制最大值; 2、sever实例设置最大并行度为1(最大不要超过4),或并行的开销阈值为10; 没有更改sqlserver的缺省 阅读全文

posted @ 2016-11-19 09:43 召冠 阅读(954) 评论(0) 推荐(0) 编辑

摘要:问题现象: 在业务数据库中查询:SELECT a.NAME FROM SYSOBJECTS a WHERE a.NAME LIKE '%2015' AND a.XTYPE='u' 提示:消息 21,级别 21,状态 1,第 1 行 Warning: Fatal error 829 occurred 阅读全文

posted @ 2016-09-08 10:24 召冠 阅读(3267) 评论(0) 推荐(0) 编辑

摘要:背景: 事务是数据库管理系统的一个基本概念,事务具有四个基本特点,即ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),通过事务机制可以保证数据库的一致性和完整性。 不过数据库事务只能在数据库实例的同一个会话级别进行 阅读全文

posted @ 2016-09-07 10:09 召冠 阅读(2711) 评论(3) 推荐(0) 编辑

摘要:DB SQL Monitor v1.7.6 Designed by Wang Zhaoguan 工具说明 ------------------------------------------------------------------------------------ 从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和开发人员分析优化... 阅读全文

posted @ 2016-03-24 19:29 召冠 阅读(4377) 评论(0) 推荐(0) 编辑

摘要:数据库长时间运行后,因断电、操作系统、物理存储等的原因可能会造成数据库内部的逻辑或物理错误,我们可以使用一般的方式尝试修复。对于sqlserver 我们可以使用DBCC命令:-- sqlserveruse dbName GO--exec sp_dboption @databasename, N'si... 阅读全文

posted @ 2016-01-19 15:14 召冠 阅读(801) 评论(0) 推荐(0) 编辑

摘要:锁升级 SQLSERVER、DB2中的锁是内存里面实现的,这就有个资源消耗问题,当锁的数量达到一个阀值或内存有压力时,就会引发锁升级。实际的情况是从row lock直接升级到table lock,而不会小升级到page lock。ORACLE的锁是block里面实现的,行锁是存放在每行的行头里面的,... 阅读全文

posted @ 2016-01-18 11:28 召冠 阅读(1592) 评论(0) 推荐(1) 编辑

摘要:问题描述 发现有的数据库日志文件太大,无论如何收缩执行几次SQL语句都不行。事务日志达30+G,而且使用常规的截断、收缩方法均无法减小日志物理文件的尺寸,经过一番寻找,终于找到了解决方法。 查看日志信息 在查询分析器中执行如下代码来查看日志信息: DBCC LOGINFO('数据库名称') 我... 阅读全文

posted @ 2016-01-15 09:37 召冠 阅读(736) 评论(0) 推荐(0) 编辑

摘要:组合主键、聚集索引引发的死锁问题,还是索引字段顺序、选择性的问题,切记。 -- SPID: 61 exec sp_executesql N'DELETE FROM SYLOCKAID WHERE MKID=@param0 AND DATACAT=@param1 AND DATAID=@param2',N'@param0 varchar(max) ,@param1 varchar(... 阅读全文

posted @ 2016-01-04 14:37 召冠 阅读(1115) 评论(0) 推荐(0) 编辑

摘要:sqlserver项目,因严重的阻塞造成系统宕机的问题分析 1、通过查询SQL阻塞信息,定位到阻塞源头spid、该会话的状态、等待事件及执行的SQL脚本 2、根据spid查询该会话已经持有的锁资源、数据对象 3、根据SQL脚本如果能够找到对应的程序上下文,便可以快速定位到问题源头 4、根据源头会话确定远程连接的HostName、HostProcess,抓取进程dump文件,分析线程堆栈匹配该SQL脚本 5、使用sqlserver的Profiler,开启SQL的RPC、Batch及transaction的跟踪,结合阻塞SQL时间点,分析跟踪文件 阅读全文

posted @ 2015-12-09 18:58 召冠 阅读(1609) 评论(0) 推荐(0) 编辑

摘要:事务属性:ACID(原子性、一致性、隔离性、持久性)隔离级别:主要针对的是共享锁的持有时间和范围SQL标准定义了以下四种事务隔离级别READ UNCOMMITTED 允许脏读、 不可重复读、 允许幻读READ COMMITTED 不允许脏读、 不可重复读、 允许幻读REPEATABLE READ 不... 阅读全文

posted @ 2015-11-10 13:38 召冠 阅读(844) 评论(0) 推荐(0) 编辑

摘要:最近不定期有项目反馈周期性的系统整体性能下降情况,经分析存在因数据库环境、参数配置不佳造成的。比如,sqlserver日志文件缺省按百分比增长,当日志文件已经比较大时,每次扩展时耗时较长,系统整体卡顿;另外,如果没有专门做日志备份,收缩日志和数据库时不会显著的降低日志大小,造成每次完整备份很大、备... 阅读全文

posted @ 2015-11-09 10:15 召冠 阅读(2185) 评论(0) 推荐(0) 编辑

摘要:孤立帐户,指的是某个数据库的帐户只有用户名而没有登录名,这样的用户在用户库的sysusers系统表中存在,而在master数据库的syslogins中却没有对应的记录。 孤立帐户的产生一般是一下两种: 1.将备份的数据库在其它机器上还原; 2.重装系统或SQL SERVER之后只还原了用... 阅读全文

posted @ 2015-10-20 11:48 召冠 阅读(418) 评论(0) 推荐(1) 编辑