-
深入学习SQLServer聚合函数算法优化技巧
Sqlserver聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期。Sqlserver聚合函数对一组值执行计算并返回单一的值...
数据库操作教程 2022-09-23 17:37:03 -
深入分析SQLServer存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句...
数据库操作教程 2022-09-23 17:32:32 -
深入浅出解析mssql在高频,高并发访问时键查找死锁问题
死锁对于DBA或是数据库开发人员而言并不陌生,它的引发多种多样,一般而言,数据库应用的开发者在设计时都会有一定的考量进而尽量避免死锁的产生.但有时因为一些特殊应用场景如高频查询,高并发查询下由于数据库设计的潜在问题,一些不易捕捉的死锁可能出现从而影响业务...
数据库操作教程 2022-09-23 17:32:21 -
深入分析SqlServer查询计划
对于SQLServer的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题,因此本文只谈优化查询时如何看懂SQLServer查询计划...
数据库操作教程 2022-09-23 17:27:01 -
深入解析MS-SQL锁机制
锁的概述一.为什么要引入锁多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致二锁的分类锁的类别有两种分法:1.从数据库系统的角度来看:分为独占锁(即排它锁),共享锁和更新锁MS-SQLServer使用以下资源锁模式。锁模式描述共享(S)用于不更改或不更新数据的操作(只读操作),如SELECT语句...
数据库操作教程 2022-09-23 17:26:16 -
深入SQLSERVER合并相关操作Union,Except,Intersect的详解
对于结果集有几个处理,值得讲解一下1.并集(union,Unionall)这个很简单,是把两个结果集水平合并起来。例如SELECT*FROMAUNIONSELECT*FROMB【注意】union会删除重复值,也就是说A和B中重复的行,最终只会出现一次,而unionall则会保留重复行...
数据库操作教程 2022-09-23 17:25:01 -
深入SQLServer中定长char(n)与变长varchar(n)的区别详解
char(n)是定长格式,格式为char(n)的字段固定占用n个字符宽度,如果实际存放的数据长度超过n将被截取多出部分,如果长度小于n就用空字符填充。varchar(n)是变长格式,这种格式的字段根据实际数据长度分配空间,不浪费对于的空间,但是搜索数据的速度会麻烦一点...
数据库操作教程 2022-09-23 17:24:42 -
深入SQLCursor基本用法的详细介绍
由于这个游标执行一下就相当于SELECT一下其效率不敢恭维也没做深入研究。复制代码代码如下: table1结构如下 id int name varchar(50) declare@idint declare@namevarchar(50) declarecursor1cursorfor --定义游标cursor1 select*fromtable1 --使用游标的对象(跟据需要填入select文) opencursor1 ...
数据库操作教程 2022-09-23 17:21:32 -
SQLSERVER函数之深入表值函数的处理分析
有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等,表值函数返回结果集可以简单向下面这么写:复制代码代码如下:CREATEFUNCTIONFun_GetReportNews(@typevarchar(10))RETURNSTABLEASRETURN( SELECTTPR_ID,TPR_Title,TPR_DateFROMTP_ReportNewsWHERETPR_Type=@type)调用的时候就SELECTXXFROMFun_GetReprotNews('xx')如果函数中要定义变量,进行判断计算处理什么的,写法有点不一样了,要定义表变量才行,表值函数里是不允许创建临时表的,只能是表变量。举个简单的写法样式,如下:复制代码代码如下:CREATEFUNCTIONFUN_GetInfoList(@typevarchar(10))RETURNS@TableTABLE(TPR_IDint,TPR_Titlenvarchar(100),TPR_PubDatedatetime)ASBE...
数据库操作教程 2022-09-23 17:20:01 -
深入sqlserver2005万能分页存储过程的详解
–建立主表临时表CREATETABLE#temp(rownumberbigint,orderseqnoVARCHAR(36),goodsnameVARCHAR(50),companynameVARCHAR(100))–建立子表临时表CREATETABLE#detail(orderseqnoVARCHAR(36),detailidUNIQUEIDENTIFIER,unitpriceDECIMAL(12,2),Qtyint)–插入主表数据到主表临时表insertinto#tempSELECToo.rownumber,oo.OrderSeqNO,oo.GoodsName,oo.CompanyNameFROM(SELECTROW_NUMBER()OVER(ORDERBYoi.createdateDESC)ASrownumber,oi.OrderSeqNO,oi.GoodsName,ci.CompanyNameFROMOrderInfooiINNERJOINCompanyInfociONoi.CompanyID=ci.CompanyIDWHEREoi.CreateDate<GETDATE(...
数据库操作教程 2022-09-23 17:18:03