当前搜索:

SQLServer数据库并发控制【加锁】

当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,...
阅读(43) 评论(0)

SQLServer数据库,锁,并发操作,原子操作

1 前言数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。2 锁的...
阅读(65) 评论(0)

SQL Server中的Merge关键字

简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中...
阅读(57) 评论(0)

SqlServer子查询类型

可以在许多位置指定子查询: 使用别名。有关详细信息,请参阅使用别名的子查询。 使用 IN 或 NOT IN。有关详细信息,请参阅使用 IN 的子查询和使用 NOT IN 的子查询。 在 UPDATE、DELETE 和 INSERT 语句中。有关详细信息,请参阅 UPDATE、DEL...
阅读(84) 评论(0)

SqlServer子查询基础知识

子查询是一个嵌套在 SELECT、INSERT、UPDATE 或 DELETE 语句或其他子查询中的查询。任何允许使用表达式的地方都可以使用子查询。在以下示例中,子查询在 SELECT 语句中被用作名为 MaxUnitPrice 的列表达式。 SELECT Ord.SalesOrderID,...
阅读(70) 评论(0)

SqlServer ROW_NUMBER() 排序函数

1.使用row_number()函数进行编号:如select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Customer原理:先按psd进行排序,排序完后,给每条数据进行编号。2.在订单中按价格的升序进行排序...
阅读(118) 评论(0)

sql注入攻击详解(原理理解)

前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误。其实sql注入漏洞就是一个。作为一个菜鸟小程序员,我对sql注入的东西了解的也不深入,所以抽出时间专门学习了一下。现在把学习成果分享给大家,希...
阅读(122) 评论(0)

SqlServer学习(二)【知识点记录】

SQL时间区间条件查询三种方法比较 在某一时间区间条件的查询 后来再了一次测试,数据比较少,大概500条数据,结果如下: declare @ct datetime set @ct=getdate() SELECT * FROM [siso].[dbo].[Activity...
阅读(85) 评论(0)

SqlServer学习(一)【杂记录】

txtdate=DateTime.Parse(Context.Request["txtDate"].ToString()).ToString("yyyy-MM-dd"); add name="DefaultDbServerConnec...
阅读(102) 评论(0)

非聚集索引(百科)

非聚集索引是一种索引,该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。 非聚集索引与聚集索引一样有 B 树结构,但是有两个重大差别: 数据行不按非聚集索引键的顺序排序和存储。非聚集索引的叶层不包含数据页。 相反,叶节点包含索引行。每个索引行包含非聚集键值以及一个或多个行定位器,这些行定...
阅读(113) 评论(0)

MySql与SqlServer的一些常用用法的差别

本文将主要列出MySql与SqlServer不同的地方,且以常用的存储过程的相关内容为主。1. 标识符限定符 SqlServer [] MySql “ 2. 字符串相加 SqlServer 直接用 + MySql concat() 3. isnull() SqlServ...
阅读(221) 评论(0)

MySQL与SQL Server的一些区别浅析

1、mysql支持enum,和set类型,sql server不支持 2、mysql不支持nchar,nvarchar,ntext类型 3、mysql的递增语句是AUTO_INCREMENT,而mssql是identity(1,1) 4、mssql默认到处表创建语句的默认值表示是((0)),...
阅读(154) 评论(0)

SQL 高效分页(百万条数据)

ROW_NUMBER() OVER (ORDER BY id) | 分页 SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,*...
阅读(233) 评论(0)

SQLServer单列索引和多列索引的不同

一、索引的概念索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法。索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录可以快速找到你想要的信息,而不需要读完全书。在数据库中,数据库程序使用索引可以重啊到表中的数据,而...
阅读(121) 评论(0)

聚集索引和非聚集索引

聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 ...
阅读(112) 评论(0)

Transact-SQL参考之sysindexes

数据库中的每个索引和表在表中各占一行。该表存储在每个数据库中。 列名 数据类型 描述 id int 表 ID(如果 indid = 0 或 255)。否则为索引所属表的 ID。 status int 内部系统状态信息。 first binary(6) ...
阅读(274) 评论(0)

SQL Server 性能调优4 之书写高效的查询

限制查询的行和列来提高性能这条规则非常简单,这里就不细说了。使用搜索可参数化判断(sargable conditions)来提高性能Sargable 由 Search ARGument Able 简写而来,字面意思是搜索可参数化?还是比较晦涩哎…总之使用Sargable判断可以帮助查询优化器更有效...
阅读(327) 评论(1)

SQL Server 性能调优3 之索引(Index)的维护

前言前一篇的文章介绍了通过建立索引来提高数据库的查询性能,这其实只是个开始。后续如果缺少适当的维护,你先前建立的索引甚至会成为拖累,成为数据库性能的下降的帮凶。查找碎片消除碎片可能是索引维护最常规的任务,微软官方给出的建议是当碎片等级为 5% - 30% 之间时采用 REORGANIZE 来“重整...
阅读(432) 评论(1)

SQL Server 性能调优2 之索引(Index)的建立

前言索引是关系数据库中最重要的对象之一,他能显著减少磁盘I/O及逻辑读取的消耗,并以此来提升 SELECT 语句的查找性能。但它是一把双刃剑,使用不当反而会影响性能:他需要额外的空间来存放这些索引信息,并且当数据更新时需要一些额外开销来保持索引的同步。形象的来说索引就像字典里的目录,你要查找某一个...
阅读(348) 评论(1)

SQL Server 性能调优 之执行计划(Execution Plan)调优

执行计划中的三种 Join 策略SQL Server 存在三种 Join 策略:Hash Join,Merge Join,Nested Loop Join。Hash Join:用来处理没有排过序/没有索引的数据,它在内存中把 Join 两边数据(的关联key)分别建立一个哈希表。例如有以下的查询语...
阅读(268) 评论(1)
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 147万+
    积分: 2万+
    排名: 494
    博客专栏
    文章分类
    微信公众号