Sql Server编译原理
当 Sql Server 收到任何一个指令,包括:查询、批处理、存储过程、触发器、预编译指令和动态SQL Server语句,要完成语法解析、语义分析,然后再进行"编译",生成能够运行的"执行计划"。在编译的过程中,SQL Server 会根据所涉及的对象的架构、统计信息,以及指令的具体内容,估算可能的执行计划,以及它们的成本,最后选择一个SQL Server认为成本最低的语句。执行计划生成之后,SQL Server 通常会把它们缓存到内存里,术语统称它们叫“Plane Cache”。以后同样的语句执行,SQL Server就可以使用同样的执行计划,而...
SQL Server死锁总结及期解决方法
SQL Server死锁总结 1. 死锁原理根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进...
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路1,简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面,悲剧布丁移动,3面,搞定涂鸦游戏,3面,搞定友盟,3面->CEO面,搞定雅虎,4面->终面,搞定微策略,2面,悲剧人民搜索,3面->终面,搞定人人,2面+终面+Special面,搞定Google,7面,搞定求...
SQL查询性能分析之(not in)、(and not)、()、(!=)性能比较
在与朋友讨论查询时引出了not in 与and not两种踢出方法,相互的口舌之争之后我决定动手来查查看,他们到底有什么区别,谁的执行效率更高,今后该如何选择性能最优的查询条件。由于本人能力有 限,肚子中的墨水有限,所以本文有什么错误之处还望各位前辈指出。 在使用sql中我们会有各种各样的条件筛选,常见的就是要踢出一部分我们不需要的数据,在where后面的踢出方法常见的有 (not in / and not / <> / !=) 这四种方法,既然存在这样四种方法,那么我们又该如果选择最佳方法呢?下面我们就一起...
在存储过程中调用WebService
1 create procedure usp_CallWebServices 2 ( 3 @parameter nvarchar(500)=null 4 ) 5 as 6 Declare @obj int 7 Declare @SvercieUrl nvarchar(200) 8 Declare @response nvarchar(max) 9 10 11 Set @SvercieUrl = 'http://locahost/webservices/service.asmx/saludar?param='+@parameter12 13 14 Execute sp_OACreate 'MSXML2.ServerXMLHttp',@obj out15 Execute sp_OAMethod @obj,'open',null,'Get',@SvercieUrl,false16 Execute sp_OAMethod @obj,'...
sql server使用ROW_NUMBER分页
ALTER PROC usp_GetPageList ( @tableName VARCHAR(20) , @selectColunms VARCHAR(1000) , @sortColumn VARCHAR(50) , @sortType VARCHAR(4) , @pageIndex INT , @pageSize INT )AS BEGIN DECLARE @sql NVARCHAR(4000) SET @sql = ' SELECT * FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY '+ @sortColumn +' '+ @sortType +' ) AS orderIndex , ' + @selectColunms + ' FROM ' + @...
SQL Server作业示例
公司有一个老项目由于直接把终端拍摄的图片以二进制的形式保存到数据库中,数据库比较大所以需要经常删除这些冗余数据,手动删除费时费力,组长让我 把这些操作变成自动的,每天执行一次,只保留最近两个月的图片数据。查阅了相关的资料,找到了解决方案,在此做一个记录,以便有同样需求的人和自己查阅。现在我们通过一个非常简单的示例:有一张员工表,我们定时往里面添加一条数据。通过示例来了解如何使用Sql Server的作业任务进行定时删除数据的操作:表结构:1.开启SQL Server Agent服务使用作业需要SQL Ag...
SQLServer全局变量
select APP_NAME ( ) as w --当前会话的应用程序 select @@IDENTITY --返回最后插入的标识值 select USER_NAME() --返回用户数据库用户名 SELECT @@CONNECTIONS --返回自上次SQL启动以来连接或试图连接的次数。 SELECT GETDATE() --当前时间 SELECT @@CPU_BUSY/100 --返回自上次启动SQL 以来 CPU 的工作时间,单位为毫秒 USE tempdb SELECT @@DBTS as w --为当前数据库返回当前 timestamp 数据类型的值。这一 timestamp 值保证在数据库中是唯一的。 select @@IDENTITY as w --返回最后...
