摘要:
锁定一并发控制模型1 悲观并发控制2 乐观并发控制二事务控制ACID属性:Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持续性);三隔离级别Uncommitted Read(未提交读)Read Committed(已提交读)Repeatable Read(可重复读)Snapshot(快照)Serializable(可串行化)四锁1 概念锁(lock)保证数据的逻辑一致性;闩(latch)保证物理一致性;供SQL Server内部使用;自旋锁(Spinlocks)为互斥而设计的;闩比用来锁定数据和索引叶子分页的完全锁更加轻量; 阅读全文
摘要:
索引碎片整理一碎片种类1 内部碎片,又称为平均页密度。是指索引正在占有超过它实际所需的空间大小。它具有两面型:低百分比会对读取数据的查询产生负面影响,会涉及更多读取操作,因为如果页被填充满的话,只需读取更少的页;另一方面,如果如果在创建索引时设置一个较低的填充因子,就可以避免当插入更多记录而不必进行页拆分。对应sys.dm_db_index_physical_stats的列avg_page_space_used_in_percent。2 外部碎片,又称平均碎片百分比,或逻辑碎片。是指在分页的逻辑顺序与物理顺序不匹配或者索引拥有的扩展不连续时产生。包括以下两种:逻辑碎片:这是索引的叶级页中出错页 阅读全文
摘要:
索引调优1 如何查看索引数据的存储是否连续?USE CreditIF EXISTS (SELECT name FROM Sys.indexes WHERE name = 'idx_LastName') DROP INDEX idx_LastName ON MemberCREATE INDEX idx_LastName ON Member(LastName) GO--使用sys.indexs 查看取得该索引原来的FillFactor 设置select total_pages,data_pages,used_pages,fill_factor,a.* from sys.indexe 阅读全文
摘要:
跟踪--1 注意事项:不要用SQL Server Profiler图形化跟踪;不要把跟踪数据写到数据库表;不要把跟踪文件写到包含数据库文件的磁盘上;选择事件类和数据列,只跟踪需要的信息,移除所有默认项和非必选项;列用筛选条件,如数据库ID;--2 需要跟踪的事件类和字段SP:Completed SP:StmtCompleted RPC:Completed SQL:StmtCompleted TextData Duration host application login--3 用于创建跟踪的系统存储过程--创建跟踪定义。新的跟踪将处于停止状态。sp_trace_create--创建用户定义事件 阅读全文
摘要:
查询步骤1 利用join语句时筛选条件写在ON还是where后面?写在ON后面的条件在join步骤之前应用,写在where后面的条件在join步骤后面应用,而且写在where后面的条件的过滤才是最终的。2 count(*)和count(字段)是有区别的;3 top WITH TIES条件--这些额外的返回行的该参数值与TOP n (PERCENT) 行中的最后一行的该参数值相同。只有在指定ORDER BY 子句之后,才能在SELECT 语句中指定TOP ...WITH TIES。SELECT TOP(10) PERCENT WITH TIESEmployeeID, Title, Departm 阅读全文
摘要:
sql server 2005 优化方法一分析实例级的等待--可能存在的性能问题()IO等待;()存储过程和代码的重新编译;()tempdb数据库页可能是瓶颈;--1 不用重新启动数据库实例,重置'sys.dm_os_wait_stats'DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR);--2 查询累计值达到系统等待时间%的重量级等待WITH Waits AS( SELECT wait_type, wait_time_ms / 1000. AS wait_time_s, 100. * wait_time_ms / SUM( 阅读全文
摘要:
--------------------------------------------------------功能:十六进制转换为文件号 --使用:SELECT dbo.convert_page_nums(0xCF0400000100) ------------------------------------------------------ CREATE FUNCTION convert_page_nums (@page_num binary(6)) RETURNS varchar(11)AS BEGIN RETURN(convert(varchar(2), (convert(int, 阅读全文