随笔分类 -  SQL Server

摘要:锁的概述一. 为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致二 锁的分类锁的类别有两种分法:1. 从数据库系统的角度来看:分为独占锁(即排它锁) 阅读全文
posted @ 2012-08-24 16:21 温景良(Jason) 阅读(8517) 评论(0) 推荐(5) 编辑
摘要:最近在做安装包的时候编写sql脚本自动生成库,发现没有在写sql脚本没有一定的规范,写出来的脚本可能会害了同事和自己,所以总结了以下内容,以供参考。1、创建表的脚本范例IF NOT EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DIMRoles]') AND xtype = 'U')BEGINCREATE TABLE [DIMRoles]( [Key] [int] NOT NULL, [Name] [nvarchar](256) NOT NULL,PRIMARY KEY CLUSTERE 阅读全文
posted @ 2012-03-22 11:24 温景良(Jason) 阅读(9761) 评论(1) 推荐(1) 编辑
摘要:最近客户的数据库暴涨,一开始找不到原因,用sql查询表的空间大小,结果之前用的sql语句只能查询除了text,image外的字段大小.搞得一时间混乱不堪.后来咨询了大师们,找到用sp_spaceused这个系统函数可以查询表的真实大小,包含text等字段.sql如下:declare @id NVARCHAR(100)create table #spt_space( [name] NVARCHAR(50) null, [rows] int null, [reserved] NVARCHAR(50) null, [data] NVARCHAR(50) null, [index_size] NVA. 阅读全文
posted @ 2011-07-01 10:49 温景良(Jason) 阅读(3107) 评论(0) 推荐(0) 编辑
摘要:2种方法方法1:truncate table 你的表名 --这样不但将数据删除,而且可以重新置位identity属性的字段。方法2:delete from 你的表名dbcc checkident(你的表名,reseed,0) --重新定位identity属性字段,让其值从1开始。 阅读全文
posted @ 2011-06-27 10:56 温景良(Jason) 阅读(501) 评论(0) 推荐(0) 编辑
摘要:若要在 SQL Server 2005 实例上启用远程连接并打开 SQL Server Browser 服务,请使用 SQL Server 2005 外围应用配置器工具。在安装 SQL Server 2005 时会安装外围应用配置器工具。回到顶端为 SQL Server 2005 Express Edition 或 SQL Server 2005 Developer Edition 启用远程连接必须为要从远程计算机连接到的每个 SQL Server 2005 实例启用远程连接。为此,请按照下列步骤操作: 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“ 阅读全文
posted @ 2011-04-10 21:07 温景良(Jason) 阅读(303) 评论(0) 推荐(0) 编辑
摘要:declare @rsql varchar(250) declare @csql varchar(300) declare @rc nvarchar(500) declare @cstucount int declare @ccount int set @rsql='(select Classroom_id from EA_RoomTime where zc='+@zc+' and xq='+@xq+' and T'+@time+'=''否'') and ClassroomType=''1& 阅读全文
posted @ 2011-03-26 23:47 温景良(Jason) 阅读(436) 评论(0) 推荐(0) 编辑
摘要:本帖提供两种做法,可避免在 SQL Server 事务锁定时产生的不正常或长时间阻塞,让用户和程序也无限期等待,甚至引起 connection pooling 连接数超过容量。 所谓的「阻塞」,是指当一个数据库会话中的事务,正在锁定其他会话事务想要读取或修改的资源,造成这些会话发出的请求进入等待的状态。SQL Server 默认会让被阻塞的请求无限期地一直等待,直到原来的事务释放相关的锁,或直到它超时 (根据 SET LOCK_TIMEOUT,本文后续会提到)、服务器关闭、进程被杀死。一般的系统中,偶尔有短时间的阻塞是正常且合理的;但若设计不良的程序,就可能导致长时间的阻塞,这样就不必要地锁定 阅读全文
posted @ 2011-03-20 21:06 温景良(Jason) 阅读(748) 评论(0) 推荐(0) 编辑
摘要:今天工作的时候,修改字段的默认值,找了半天不知道怎么写,google大神救命了,下面贴了语法。ALTER TABLE [dbo].[abc] ADD CONSTRAINT [DF_abc_e] DEFAULT ( '1900-01-01 ') FOR [e] 阅读全文
posted @ 2011-02-28 18:02 温景良(Jason) 阅读(3325) 评论(0) 推荐(0) 编辑
摘要:今天在博客园看到一篇文章说这个,试了一下,效果不错,记录一下Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->DBCCUPDATEUSAGE(0,sys_UserInfo)withCOUNT_ROWSSELECTrowsFROMsysindexesWHEREid=OBJECT_ID('sys_UserInfo')ANDindid<2使用DBCC UPDATEUSAGE报告sysindexes中的页数和行数错误并进行更正 0 阅读全文
posted @ 2011-02-23 09:55 温景良(Jason) 阅读(4024) 评论(0) 推荐(0) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT表名=casewhena.colorder=1thend.nameelse''end,字段序号=a.colorder,字段名=a.name,标识=casewhenCOLUMNPROPERTY(a.id,a.name,'IsIdentity')=1then'&#8730;'else''end,主键=casewh 阅读全文
posted @ 2011-02-14 10:09 温景良(Jason) 阅读(274) 评论(0) 推荐(0) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->--删除存储过程DECLARE@STRINGVARCHAR(8000)WHILEEXISTS(SELECTNAMEFROMSYSOBJECTSWHERETYPE='P'ANDSTATUS&gt;=0)BEGINSELECT@STRING='DROPPROCEDURE'+NAMEFROMSYSOBJECTSWHERETYPE='P'AND 阅读全文
posted @ 2011-02-12 09:57 温景良(Jason) 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1. 死锁原理 根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源。对应到SQL Server中,当在两个或多个任务 阅读全文
posted @ 2011-02-10 22:26 温景良(Jason) 阅读(297) 评论(0) 推荐(0) 编辑
摘要:1,2005的外围应用配置器在2008中换了地方  2,有些设置生效需要重启一下SQL Server  step 1: 打开SSMS(SQL Server Management Studio),用windows身份连接数据库,登录后,右键选择“属性”  step 2: 左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式  step 3: 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定”  step 4: 展开“安全性”-“登录名”-“sa”,右键选择“属性”  step 5: 左侧选择“常规”,右侧选择“SQL Server 阅读全文
posted @ 2010-12-21 14:53 温景良(Jason) 阅读(9788) 评论(0) 推荐(0) 编辑
摘要:呵呵,最近俺也经常用这玩意才优化数据,懒得写,copy了这位仁兄的文章.原文地址:http://www.cnblogs.com/hsj2010/archive/2010/07/15/1777823.html最近数据库服务器有点慢,去看看哪方面的压力比较大!其实并不是这个Lucky28 数据库影响整个服务器。但多少会有点影响,每个小影响积累起来就影响比较大!这里简单的讲一下:如何使用数据库引擎优化顾... 阅读全文
posted @ 2010-07-16 13:34 温景良(Jason) 阅读(572) 评论(0) 推荐(0) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--USEmasterDECLARE@SQLVARCHAR(1000)DECLARE@DBsysnameDECLAREcurDBCURSORFORWARD_ONLYSTATICFORSELECT[name... 阅读全文
posted @ 2010-07-15 16:11 温景良(Jason) 阅读(270) 评论(0) 推荐(1) 编辑
摘要:[Sql Server]超时时间已到。在操作完成之前超时时间已过或服务器未响应。原因分析:1.如果用到了事务处理 在事务开始BeginTransaction()与事务结束transaction.Commit()中间用到了没有启动事务的过程,如其他查询等,会提示此错误。另外一种情况就是没有正确的使用事务导致表被锁定,此时也会引起超时。2.ADO.NET的使用引发的问题 connection未及时关闭... 阅读全文
posted @ 2010-07-15 10:22 温景良(Jason) 阅读(582) 评论(1) 推荐(0) 编辑
摘要:工作中数据库经常出现内存,找了篇文章参照CSDN,中国风(Roy)一篇死锁文章 阻塞:其中一个事务阻塞,其它事务等待对方释放它们的锁,同时会导致死锁问题。 整理人:中国风(Roy) 参照Roy_88的博客 http://blog.csdn.net/roy_88/archive/2008/07/21/2682044.aspx 日期:2008.07.20 ***********************... 阅读全文
posted @ 2010-07-15 10:20 温景良(Jason) 阅读(814) 评论(0) 推荐(0) 编辑
摘要:1. 数据库表锁定原理1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据.1.2 事务的ACID原则1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性.1.3.1SQL Server中可以锁定的资源:1.3.2锁的粒度:1.3.3锁的升级:锁的升级门限以及锁... 阅读全文
posted @ 2010-07-15 10:13 温景良(Jason) 阅读(335) 评论(0) 推荐(0) 编辑
摘要:大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要全表进行扫描读取表中的每一个记录才能找到所要的数据。索引可以分为簇索引和非簇索引:簇索引通过重排表中的数据来提高数据的访问速度;而非簇索引则通过维护表中的数据指针来提高数据的访问速度。1. 索引的体系结构 SQL Server 2005在硬盘中用8KB页面在数据库文件内存放数据。缺省情况下这些页面及其包... 阅读全文
posted @ 2010-07-11 08:05 温景良(Jason) 阅读(287) 评论(0) 推荐(0) 编辑
摘要:近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。   我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段... 阅读全文
posted @ 2010-07-08 21:19 温景良(Jason) 阅读(338) 评论(0) 推荐(1) 编辑