随笔分类 -  MSSQL

上一页 1 2 3 4 5 下一页
存储过程中的事务处理
摘要:存储过程中的事务处理在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。在编写 SQL Server 事务相关的存储过程代码时,经常看到下面这... 阅读全文
posted @ 2014-05-05 14:23 davidkam 阅读(902) 评论(0) 推荐(0)
SQL Server事务详解
摘要:事务定义:事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。事务三种运行模式:自动提交事务每条单独的语句都是一个事务。显式事务每个事务均以 BEGIN TRANSACTION 语句显式开始,以 COMMIT 或 ROLLBACK 语句显式结束。隐性事务在前一个事务完成时新事务隐式启动,但每个事务仍以 COMMIT 或 ROLLBACK 语句显式完成。事务操作的语法:BEGIN TRANSACTIONBEGIN DISTRIBUTED TRANSACTIONCOMMIT TRANS 阅读全文
posted @ 2014-01-24 23:50 davidkam 阅读(3762) 评论(0) 推荐(0)
SQL 根据表获取字段字符串
摘要:SQLSERVER查询单个数据表所有字段名组合成的字符串脚本--SQLSERVER查询单个数据表所有字段名组合成的字符串脚本--应用场合: 用于生成SQL查询字符串中select 字段名列表1 from table group by 字段名列表2 中的字段名列表1和字段名列表2部分--定义数据表名称变量Declare @TableName nvarchar(250)Set @TableName='您的数据表名称' --这里修改成您要查询的数据表名称--定义列总数变量Declare @TotalColumns intSelect @TotalColumns=count(name) 阅读全文
posted @ 2014-01-13 01:33 davidkam 阅读(659) 评论(0) 推荐(0)
数据库集群技术有哪些?
摘要:数据库集群技术有哪些?集群软件的分类:一般来讲,集群软件根据侧重的方向和试图解决的问题,分为三大类:高性能集群(High performance cluster,HPC)、负载均衡集群(Load balance cluster, LBC),高可用性集群(High availability cluster,HAC)。按照集群工作的层面,可分为:数据库服务器集群,应用服务器集群,交换机集群等按照集群的架构,可分为:共享磁盘型,非共享磁盘型。按照集群粒度不同:基于IO;基于操作系统;基于数据库实例的;基于每个数据库的等。什么是高性能集群高性能集群(High performance cluster,H 阅读全文
posted @ 2014-01-06 01:29 davidkam 阅读(1502) 评论(0) 推荐(0)
查询及删除重复记录的方法大全
摘要:1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from peoplewhere peopleId in (select peopleId from people group by peopleId having count 阅读全文
posted @ 2013-12-29 00:07 davidkam 阅读(209) 评论(0) 推荐(0)
在存储过程中编写正确的事务处理代码
摘要:在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码。在编写 SQL Server 事务相关的存储过程代码时,经常看到下面这样的写法: begin tran update statement 1 ... update statement 2 ... delete statement 3 ... commit tran这样编写的SQL存在很大隐患。请看下面的例子: cre... 阅读全文
posted @ 2013-12-28 17:03 davidkam 阅读(201) 评论(0) 推荐(0)
存储过程中使用事务与try catch
摘要:一、存储过程中使用事务的简单语法 在存储过程中使用事务时非常重要的,使用数据可以保持数据的关联完整性,在Sql server存储过程中使用事务也很简单,用一个例子来说明它的语法格式:代码 :Create Procedure MyProcedure( @Param1 nvarchar(10),@param2 nvarchar(10))ASBeginSet NOCOUNT ON;Set XACT_ABORT ON;Begin TranDelete from table1 where name=’abc’;Insert into table2 values(value1,value2,value3) 阅读全文
posted @ 2013-12-28 14:25 davidkam 阅读(457) 评论(0) 推荐(0)
LINQ to SQL使用教程
摘要:前些时间用LINQ to SQL做了一些项目,现在打算总结一下,帮助新手快速入门,并写一些别的教程没提到的东西。一、LINQ to SQL和别的LINQ to XXX有什么关系?二、延迟执行(Deferred Loading)三、什么是LINQ to SQL?四,看看LINQ to SQL到底干了些啥?——创建自己的工具类五、创建一个基本查询六,大致扫一扫 1,WHERE 2,DISTINCT 3,AVG/COUNT/SUM/MIN/MAX 4,GROUP BY 5,CASE WHEN 6,INNER JOIN和OUTER JOIN 6.1 內连接 6.2 外连接 7,ORDER BY 8.. 阅读全文
posted @ 2013-12-09 20:46 davidkam 阅读(1225) 评论(0) 推荐(2)
sqlserver能否调用webservice发送短信呢?
摘要:上班的时候突然有一个想法,sqlserver能否调用webservice发送短信呢?经过查找资料,终于找到了解决办法,现将步骤贴到下面:(1)开启sqlserver组件功能,如果不开启这个组件功能,那么在sqlserver执行语句时将不会成功。sp_configure 'show advanced options', 1;GORECONFIGURE;GOsp_configure 'Ole Automation Procedures', 1;GORECONFIGURE;GO以数据库管理员的身份执行上面的语句,返回结果如下:配置选项 'show advanc 阅读全文
posted @ 2013-12-01 01:43 davidkam 阅读(907) 评论(0) 推荐(0)
数据库优化方案(转)
摘要:摘要:一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意。所以我希望按照软件生命周期的不同阶段来总结数据库性能优化相关的注意事项。关 于数据库优化方面的文章很多,但是有的写的似是而非,有的不切实际,对一个数据库来说,只能做到更优,不可能最优,并且由于实际需求不同,优化方案还是有 所差异,根据实际需要关心的方面(速度、存储空间、可维护性、可拓展性)来优化数据库,而这些方面往往又是相互矛盾的,下面结合网上的一些看法和自己的一 些观点做个总结。 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优,也不单单是开发阶段的事情.. 阅读全文
posted @ 2013-12-01 01:38 davidkam 阅读(248) 评论(0) 推荐(0)
SQL点滴之编辑数据(转)
摘要:数据库中的数据编辑是我们遇到的最频繁的工作,这一个随笔中我来总结一下最常用的数据编辑。 select into 经常遇到一种情况是,我们希望创建一个新表,表中的数据来源于原有的一个表;原有一个表,但是这个表中的数据已经很混乱,我们希望把这些数据备份出来,然后把原有的表中的数据清除,重新导入;在这些情况下我们可以使用select into语句。 如果当前用户拥有建表权限,在select语句使用关键字into可以在数据库中创建新的 表。这个语句只需要把into new_table_name加到选择出的列名之后,from关键字之前,当然数据可以来源于一个或多个表中。需要说明的是在新表中只包... 阅读全文
posted @ 2013-12-01 01:36 davidkam 阅读(302) 评论(0) 推荐(0)
数据库水平切分方法(转)
摘要:在大中型项目中,在数据库设计的时候,考虑到数据库最大承受数据量,通常会把数据库或者数据表水平切分,以降低单个库,单个表的压 力。我这里介绍两个我们项目中常用的数据表切分方法。当然这些方法都是在程序中使用一定的技巧来路由到具体的表的。首先我们要确认根据什么来水平切分? 在我们的系统(SNS)中,用户的UID贯穿系统,唯一自增长,根据这个字段分表,再好不过。 方法一:使用MD5哈希 做法是对UID进行md5加密,然后取前几位(我们这里取前两位),然后就可以将不同的UID哈希到不同的用户表(user_xx)中了。function getTable( $uid ){ $ext=substr ... 阅读全文
posted @ 2013-12-01 01:36 davidkam 阅读(245) 评论(0) 推荐(0)
小温谈数据库优化--数据设计篇(转)
摘要:三大范式: 第1规范:没有重复的组或多值的列,这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字,不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖,大部分情况下,数据库设计都应该达到第二范式。 第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖,达到第三范式应该是系统中大部分表的要求,除非一些特殊作用的表。 更高的范式要求这里就不再作介绍了,个人认为,如果全部达到第二范式,大部分达到第三范式,系统会产生较少的列和较多的表,因而减少了数据冗余,也利于性能的提高。 完全按照三大范式规范化设计的系统几乎是不可能的,除非系统特别的小,在规范化... 阅读全文
posted @ 2013-12-01 01:33 davidkam 阅读(233) 评论(0) 推荐(0)
擦亮自己的眼睛去看SQLServer之简单Insert(转)
摘要:摘要:本来是打算先写SQLServer历史的,不过感觉写那部分内容比较难还需要多查些资料。于是调整了下顺序写下简单的Insert语句。 不过感觉写那部分内容比较难还需要多查些资料。于是调整了下顺序写下简单的Insert语句。数据库结构还是采用上一篇的结构。具体查看上一篇文章《擦亮自己的眼睛去看SQL Server之简单Select》。今天讨论的语句也比较简单,Insert语句。 一、Insert脚本 insertinto Test([Name]) values('xiaojun') 没什么好说的,因为想写这样的语句太简单。 二、 语句分析 这条语句到底发生了什么呢?假... 阅读全文
posted @ 2013-12-01 01:32 davidkam 阅读(232) 评论(0) 推荐(0)
擦亮自己的眼睛去看SQLServer之简单Select(转)
摘要:摘要:这篇文章主要和大家讨论几乎所有人都熟悉,但不少人又陌生的一条select语句。 这篇文章主要和大家讨论几乎所有人都熟悉,但不少人又陌生的一条select语句。不知道大家有没有想过到底是什么东西让SQL Server能理解我们写的select。这中间到底发生了什么,是不是有过冲动想去了解。至少我曾经冲动想去了解,但当时主要在研究CLR以及 WebForm相关知识。后来主要精力放在研究SQL Server内部机制,今天就给大家介绍下这条语句。 一、范例数据库脚本 createdatabase Test go alterdatabase Test set recovery simple... 阅读全文
posted @ 2013-12-01 01:31 davidkam 阅读(352) 评论(0) 推荐(0)
SQL Server优化50法(转)
摘要:虽然查询速度慢的原因很多,但是如果通过一定的优化,也可以使查询问题得到一定程度的解决。 查询速度慢的原因很多,常见如下几种:没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)I/O吞吐量小,形成了瓶颈效应。没有创建计算列导致查询不优化。内存不足网络速度慢查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)sp_lock, sp_who, 活动的用户查看,原因是读写竞争资源。返回了不必要的行和列查询语句不好,没有优化 可以通过如下方法来优化查询 :把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可... 阅读全文
posted @ 2013-12-01 01:30 davidkam 阅读(245) 评论(0) 推荐(0)
走向DBA[MSSQL篇] - 从SQL语句的角度提高数据库的访问性能(转)
摘要:最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带来的宝贵财富,欢迎其他的DBA来拍砖。目录1、什么是执行计划?执行计划是依赖于什么信息2、 统一SQL语句的写法减少解析开销3、 减少SQL语句的嵌套4、 使用“临时表”暂存中间结果5、 OLTP系统SQL语句必须采用绑定变量6、 倾斜字段的绑定变量窥测问题7、 begin tran的事务要尽量地小8、 一些SQL查询语句应加上nolock9、加nolock后查询经常发生页分裂的表,容易产生跳读或重复读10、聚集索引没有建在表的顺序字段上,该表容易发生页分裂11、使用复合 阅读全文
posted @ 2013-12-01 01:28 davidkam 阅读(233) 评论(0) 推荐(0)
数据库索引的基础知识(转)
摘要:一、理解索引的结构 索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。微软 的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。 SQL Server 中数据存储的基本单位是页(Page)。数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。磁盘 I/O 操作在页级执行。也就是说,SQL Server 每次读取或写入数据... 阅读全文
posted @ 2013-12-01 01:26 davidkam 阅读(275) 评论(0) 推荐(0)
有关T-SQL的10个好习惯(转)
摘要:1. 在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主要的原因来自以下两点:扩展方面的问题造成额外的书签查找或是由查找变为扫描 扩展方面的问题是当表中添加一个列时,Select *会把这一列也囊括进去,从而造成上面的第二种问题。 而额外的IO这点显而易见,当查找不需要的列时自然会产生不必要的IO,下面我们通过一个非常简单的例子来比较这两种差别,如图1所示。图1.*带来的不必要的IO 2. 声... 阅读全文
posted @ 2013-12-01 01:25 davidkam 阅读(179) 评论(0) 推荐(0)
SQL Server 高性能写入的一些总结(转)
摘要:1.1.1 摘要 在开发过程中,我们不时会遇到系统性能瓶颈问题,而引起这一问题原因可以很多,有可能是代码不够高效、有可能是硬件或网络问题,也有可能是数据库设计的问题。 本篇博文将针对一些常用的数据库性能调休方法进行介绍,而且,为了编写高效的SQL代码,我们需要掌握一些基本代码优化的技巧,所以,我们将从一些基本优化技巧进行介绍。 本文目录代码中的问题数据库性能开销使用存储过程使用数据库事务使用SqlBulkCopy使用表参数 1.1.2 正文 假设,我们要设计一个博客系统,其中包含一个用户表(User),它用来存储用户的账户名、密码、显示名称和注册日期等信息。 由于时间的关系,我们已... 阅读全文
posted @ 2013-12-01 01:23 davidkam 阅读(326) 评论(0) 推荐(0)

上一页 1 2 3 4 5 下一页