文章分类 - SQL
摘要:微软从SQl2005起引入了CTE(Common Table Expression)以强化T-SQL。这是一个类似于非持久视图的好东东。按照MSDN介绍1、公用表表达式 (CTE) 可以认为是在单个 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集。CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。CTE 可用于:创建递归查询。有关详细信息,请参阅使用公用表表达式的递归查询。在不需要常规使用视图时替换视图,也就是说,不必将定义存储在元数据中。
阅读全文
摘要:--行列互转/******************************************************************************************************************************************************以学生成绩为例子,比较形象易懂整理人:中国风(Roy)日期:2008.06.06*******************************************************************************************************
阅读全文
摘要:想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT示例:1.首先建立一个有标识列的表:CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))2.尝试在表中做以下操作:INSERT INTO products (id, product) VALUES(3, 'garden shovel')结果会导致错误:“当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'products' 中的标识列插入显式值。
阅读全文
摘要:微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字..
阅读全文
摘要:--提取数字IFOBJECT_ID('DBO.GET_NUMBER2') ISNOTNULLDROPFUNCTION DBO.GET_NUMBER2GOCREATEFUNCTION DBO.GET_NUMBER2(@SVARCHAR(100))RETURNSVARCHAR(100)ASBEGINWHILEPATINDEX('%[^0-9]%',@S) >0BEGINset@s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN@SENDGO--测试PRINT DBO.GET_NUM
阅读全文
摘要:目录1、什么是执行计划?执行计划是依赖于什么信息2、 统一SQL语句的写法减少解析开销3、 减少SQL语句的嵌套4、 使用“临时表”暂存中间结果5、 OLTP系统SQL语句必须采用绑定变量6、 倾斜字段的绑定变量窥测问题7、 begin tran的事务要尽量地小8、 一些SQL查询语句应加上nolock9、加nolock后查询经常发生页分裂的表,容易产生跳读或重复读10、聚集索引没有建在表的顺序字段上,该表容易发生页分裂11、使用复合索引提高多个where条件的查询速度12、使用like进行模糊查询时应注意尽量不要使用前%13、SQL Server 表连接的三种方式14、Row_number
阅读全文
摘要:查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过如下方法来优化查询 1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Temp...
阅读全文
摘要:我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么我么还能保证下一段时间系统还能流畅的运行吗?我么还能保证下一个人能看懂我么的存储过程吗?那么我结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。 要知道SQL语句,我想我们有必要知道SQL Server查询分析器怎么执行我们的SQL语句的,我们很多人会看执行计划,或者用Profiler来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查询分析器的执行逻辑顺序,下手的时候就胸有成竹,那么下手是不是有把握点呢? 一、查..
阅读全文
摘要:大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!SQL语句: 是对数据库(数据)进行操作的惟一途径; 消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低; 可以有不同的写法;易学,难精通。SQL优化: 固定的SQL书写习惯,相同的查询尽量保持相同,存储过程的效率较高。 应该编写与其格式一致的语句,包括字母的大小写、标点符号、换行的位置等都要一致ORACLE优化器: 在任何可能的时候都会对表达式进行
阅读全文

浙公网安备 33010602011771号