文章分类 -  Database

【转】Cursor的一些学习
摘要:Cursor的一些学习1:声明CursorDECLARE cursor_name CURSOR[LOCAL | GLOBAL][FORWARD_ONLY | SCROLL][DTATIC | KEYSET | DYNAMIC | FAST_FORWARD][READ_ONLY | SCROLL_LOCKS | OPTIMISTIC][TYPE_WARNING]FOR select_staement[FOR UPDATE [OF column_name [,...n]]](1.) LOCAL | GLOBAL默认是GLOBAL(2.) FORWARD_ONLY | SCROLL默认是FORWAR 阅读全文
posted @ 2011-11-16 22:54 matriculate 阅读(1228) 评论(0) 推荐(0)
【转】详细讲解提高数据库查询效率的实用方法
摘要:详细讲解提高数据库查询效率的实用方法1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 4.应尽量避免在 wher 阅读全文
posted @ 2011-11-10 21:43 matriculate 阅读(116) 评论(0) 推荐(0)
【转】SQLServer : EXEC和sp_executesql的区别
摘要:SQLServer : EXEC和sp_executesql的区别摘要1,EXEC的使用2,sp_executesql的使用 MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能(对于这个我在后面的例子中会详加说明),还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.1,EXEC的使用EXEC命令 阅读全文
posted @ 2011-11-07 22:10 matriculate 阅读(122) 评论(0) 推荐(0)
【转】T-SQL经验总结
摘要:T-SQL经验总结 在庞大的业务系统背后,一定有数据库管理系统的支持。在现代以数据为中心的开发时代,SQL编程也显得尤为重要。下面总结下我最近SQL编程的一些经验:1.SELECT查询要列出所有要查询的字段2.注意UNION和UNION ALL的区别,在IN,OR,UNION ALL这三种方案中,UNION ALL的执行效率是最高的。3.视图定义要尽量简单,最好不要包含业务逻辑。比如:在业务系统中,单据会有多种状态,那么在系统与系统交互的过程中,可能两边的状态码定义的不同,那么就需要映射。在这种场景下,强烈建议这种映射不要放在视图定义或SQL查询中,因为这会降低查询的性能。4.表变量与临时表的 阅读全文
posted @ 2011-10-23 19:13 matriculate 阅读(92) 评论(0) 推荐(0)
【转】T-SQL查询处理详解 (续)
摘要:T-SQL查询处理详解 (续)在上一篇T-SQL查询处理详解,文中提到了在如果不考虑查询优化器做的优化的情况下T-SQL查询的逻辑处理过程,讲得很粗糙,这一篇将补充说明这个逻辑处理过程,并对一些容易误解的地方进行说明。不对之处,还请指出。另外再次声明一点,这种逻辑处理顺序,是理论上的处理过程,实际情况还会根据查询优化器选择最优的执行计划。还是从FROM阶段讲开。(1)FROM阶段 这个阶段是查询逻辑处理的第一步。想到这里,想起了LINQ表达式不就是从FROM开始的嘛,看来还是挺有道理的。FROM阶段负责表示表或要查询的表。如果指定了表运算符,还需 要按从左到右的顺序,对运算符进行逐个处理。表运 阅读全文
posted @ 2011-10-23 19:10 matriculate 阅读(106) 评论(0) 推荐(0)
【转】T-SQL查询处理详解
摘要:T-SQL查询处理详解最近在看《Microsoft SQL Server 2008 技术内幕:T-SQL查询》这本书,受益匪浅。准备写点东西记录一下我的学习过程。首先简单提一下T-SQL。T-SQL的正式名称是Transact-SQL,是ANSI和ISO SQL标准的Microsoft SQL Server扩展,而PL/SQL是ORACLE对SQL标准的扩展。对于T-SQL编程,用得最广泛的,莫过于查询(Querying)。要想写出高质量、高性能的查询语句,必须深入地了解逻辑查询处理。一、逻辑查询处理的各个阶段(5)SELECT DISTINCT TOP(<top_specificati 阅读全文
posted @ 2011-10-23 19:09 matriculate 阅读(124) 评论(0) 推荐(0)
【转】一种简单产生流水号的方法
摘要:一种简单产生流水号的方法最近做项目在做到工单处理的时候,工单的流水号需要自动产生,找了好多方法,都有点麻烦,并且并发性都难以控制,工单号的格式要求是:单的标识+年月日+当日流水号(如:No.20080808001,No.20080808002),前面的都好处理,关键就是处理当日流水号的问题,用户一点创建单马上就要出现单号,所以自己想了种比较简单的方法来实现每天流水号的产生,产生流水号的方法很简单,但是也没有很好的并发性处理,创建时使用的单号很可能已经别别人抢先使用了,所以我在保存单的时候再做一次检查,如果单号已经别使用那么就重新生成一个单号,保存完成后将这个单号返回给用户,这样就基本几解决了工 阅读全文
posted @ 2011-10-18 11:35 matriculate 阅读(523) 评论(0) 推荐(0)
【转】SQL Server 触发器创建、删除、修改
摘要:SQL Server 触发器创建、删除、修改一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。二﹕ SQL Server为每个触发器都创建了两个专用表﹕Inserted表和Deleted表。这两个表。一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约`束。 二﹕ SQL Server为每个触发器都创建了两个专用表﹕Inserted表和Deleted表。这两个表由系统来维护﹐它们存 阅读全文
posted @ 2011-10-17 22:27 matriculate 阅读(136) 评论(0) 推荐(0)
【转】了解SQL Server触发器及触发器中的事务
摘要:了解SQL Server触发器及触发器中的事务引述 首先, 说下我写篇文章的目的,我希望能把我对触发器的理解,分享出来与你一起学习。如果你有对触发器和事务的概念,有些了解,这篇文章,对你来说会是很简单,或能让你更进一步的了解触发器里面的一些故事,和触发器中事务个故事。在这边文章里面,我不会从触发器和事务的概念去讲述,而是从常见的两种触发器类型(DML触发器 & DDL触发器)和After触发器 & Instead Of 触发器的应用不同,开始说起它们,然后是说与事务有关的故事。如果,你有什么建议和意见,都可以通过文章后面的回复与我沟通,或者通过E-Mail方式,与 我交流;我的 阅读全文
posted @ 2011-10-17 22:25 matriculate 阅读(89) 评论(0) 推荐(0)
【转】SQL Server 数据备份存储过程
摘要:SQL Server 数据备份存储过程view sourceprint?01USE [master] 02GO 03SET ANSI_NULLS ON04GO 05SET QUOTED_IDENTIFIER OFF06GO 0708CREATE Proc [dbo].[SQL_Backup] 09@DataBase Nvarchar(50) 10AS11DUMP TRANSACTION @DataBase WITH NO_LOG 12BACKUP LOG @DataBase WITH NO_LOG 13DBCC SHRINKDATABASE (@DataBase) 1415---------- 阅读全文
posted @ 2011-10-17 22:09 matriculate 阅读(472) 评论(0) 推荐(0)
【转】极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码)
摘要:极限挑战—C#100万条数据导入SQL SERVER数据库仅用4秒 (附源码) 实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本实验将使用5中方法完成这个过程,并详细记录各种方法所耗费的时间。 本实验中所用到工具为VS2008和SQL SERVER 2000、SQL SERVER 2008,分别使用5中方法将100万条数据导入SQL 2000与SQL 2008中,实验环境是DELL 2850双2.0GCPU,2G内存的服务器。感兴趣的朋友可以下载源代码自己验证一下所用时间。 还要有一点需要进行说明,本实验中执行SQL语句的地方使用了IsLine FrameWork框架中的Da 阅读全文
posted @ 2011-10-17 22:01 matriculate 阅读(158) 评论(0) 推荐(0)