
SQL Server的学习
文章平均质量分 52
qianmacao
我就是我
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sql server的去重
数据表结构[sql] view plaincopyif exists(select * from sysobjects where name='stuInfo') drop table stuInfo create table stuInfo /*创建学员信息表**/ ( stuName varchar(20) no原创 2015-05-08 14:48:51 · 4154 阅读 · 0 评论 -
SQL Server日期计算(使用DATEADD和DATEDIFF函数)
通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部转载 2016-02-24 13:52:50 · 4310 阅读 · 0 评论 -
SQL Server中bit数据类型应用
在 SQL Server 中,用来处理判断flag的字段,使用bit类型。在使用过程中有几点需要注意的:1、bit 与 SQL Server 的整型和数字数据相似的数字数据,但 bit 列只能存储 0 和 1。2、在插入、修改 bit 数据时,使用 0 或 1 ,而不是 false 或 true,bit 字段放在 where 查询条件中也是这样。3、利用 RecordSet原创 2015-12-07 10:51:41 · 39675 阅读 · 4 评论 -
sql server总exists的性能好于in
在sqlserver中exists的性能好于in,所以尽量在能用exists的情况下少用in,在脚本中尽量少用not ,等否定的词原创 2016-01-06 15:11:30 · 1313 阅读 · 1 评论 -
select @@SERVERNAME
@@SERVERNAME返回运行 Microsoft® SQL Server™ 的本地服务器名称。语法@@SERVERNAME返回类型nvarchar注释SQL Server 安装程序在安装时将服务器名设置为计算机名。可通过使用 sp_addserver 然后重新启动 SQL Server 来更改 @@SERVERNAME。不过,通常不需要这种方法。原创 2015-12-20 11:58:56 · 4860 阅读 · 0 评论 -
SQL函数学习------- FOR XML PATH 函数
(一)说明FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主.(二) 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(hobby)用来存放兴趣爱好,表结构如下: 接下来我们来看应用原创 2015-11-22 16:03:00 · 549 阅读 · 0 评论 -
sql 查询慢的48个原因分析(分享)
sql 查询慢的48个原因分析。 查询速度慢的原因很多,常见如下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(转载 2015-11-22 15:42:08 · 21204 阅读 · 1 评论 -
SQL函数学习----over函数
(一)函数介绍开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:1:over后的写法: over(order by salary) 按照salary排序进行累计,原创 2015-11-22 16:11:28 · 973 阅读 · 0 评论 -
你需要明白的SQL SERVER书签查找(Bookmark Lookup)
你也许会想,假如非聚集索引可以快速的找到所求的数据,但遗憾的是,非聚集索引却不包含所有所求列时该怎么办?这时SQL Server会面临两个选择,直接访问基本表去获取数据或是在非聚集索引中找到数据后,再去基本表获得非聚集索引没有覆盖到的所求列。这个选择取决于所估计的行数等统计信息。查询分析器会选择消耗比较少的那个。 一个简单的书签查找如图5所示。 图5.一原创 2015-11-22 15:40:12 · 2775 阅读 · 0 评论 -
sqlserver进程死锁的解决办法(一)
之前查了很多资料,一般都是在select 语句添加with(nolock)即可,但是如果是调用一些源码jar包,可是包里面的方法没有添加with(nolock),那么久没有办法了,例如之前我做工工作流,调用的是activiti的jar包,它对于ibatis的调用,默认是不加with(nolock)的,所以,当两个以上系统,同时操作一个库的时候,就会发生死锁现象,因为查找的字段没有添加索引,查找的时原创 2015-11-22 14:57:00 · 7344 阅读 · 0 评论 -
淡sqlserver对like '%关键词%' 处理时的索引利用问题
说法一:百分号%通配符前置会让SQL查询不走索引,改走全表扫描。这种说法很流行结论是错误的事实上这种说法不太准确 通配符%前置会让SQL查找索引时效率极速下降,但在大多数情况下还是会走索引(不需要全文索引,只要建一个普通的索引就可以了)CREATE NONCLUSTERED INDEX [Ix_索引名] ON [dbo].[wkf_表名] ( [db_tit原创 2015-11-23 11:17:08 · 11200 阅读 · 0 评论 -
视图学习(一)
简介 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口.常规视图本身并不存储实际的数据,而仅仅存储一个Select语句和所涉及表的metadata. 视图简单的理解如下: 通过视图,客户端不再需要知道底层table的表结构及其之间的关系。视图提供了一个统一访问数据的接口。原创 2015-11-23 10:41:39 · 904 阅读 · 0 评论 -
聚集索引和非聚集索引(整理)
聚集索引 一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。 聚集索引确定表中数据的物理顺序。聚集索引类似于电话簿,后者按姓氏排列数据。由于聚集索引规定数据在表中的物理存储顺序,因此一个表只能包含一个聚集索引。但该索引可以包含多个列(组合索引),就像电话簿按姓氏和名字进行组织一样。 聚集索引对于那些经常要搜索范围值的列特别有效。使用聚集索引找到包转载 2015-11-22 15:44:15 · 3740 阅读 · 1 评论 -
sql server中高并发情况下 同时执行select和update语句死锁问题 (二)
死锁对于DBA或是数据库开发人员而言并不陌生,它的引发多种多样,一般而言,数据库应用的开发者在设计时都会有一定的考量进而尽量避免死锁的产生.但有时因为一些特殊应用场景如高频查询,高并发查询下由于数据库设计的潜在问题,一些不易捕捉的死锁可能出现从而影响业务.这里为大家介绍由于设计问题引起的键查找死锁及相关的解决办法. 这里我们在测试的同时开启trace profiler跟踪死锁视转载 2015-11-22 15:26:42 · 1924 阅读 · 0 评论 -
sql server中高并发情况下 同时执行select和update语句死锁问题
最近在项目上线使用过程中使用SqlServer的时候发现在高并发情况下,频繁更新和频繁查询引发死锁。通常我们知道如果两个事务同时对一个表进行插入或修改数据,会发生在请求对表的X锁时,已经被对方持有了。由于得不到锁,后面的Commit无法执行,这样双方开始死锁。但是select语句和update语句同时执行,怎么会发生死锁呢?看完下面的分析,你会明白的…首先看到代码中转载 2015-11-22 14:57:55 · 1664 阅读 · 0 评论 -
select*from在自定义函数(视图)中的特殊问题
1、提出问题在自定义表值函数中,如果有返回select * from的情况 这个时候如果修改表结构,如添加表的字段表值函数的返回值就会和实际值不相同。修改前表结构修改前表的数据自定义表值函数修改表结构前搜索结果 修改后表结构修改表结构后的查询结果2、分析问题如上图,大家可原创 2015-11-23 10:37:37 · 2548 阅读 · 0 评论 -
sqlserver.jdbc.SQLServerException: 事务(进程 ID 246)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务
解决办法:仔细查看错误,由哪个程序文件引起,再查看对应表,在对应表上加上select * from table1 with(updlock) where ....原创 2015-11-11 16:50:06 · 9439 阅读 · 0 评论 -
数据库sql语句的exists总结
数据库sql语句的exists总结 sql exists in 学习 先来比较下语法:--deals=交易表,areas=地域表,例如香港;我们的目的:查看有交易的地域select * from areas where id in (select city_id from deals);select * from areas where id in (s转载 2015-05-08 14:50:10 · 5551 阅读 · 0 评论 -
DELETE和TRUNCATE 的区别
语法delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以。2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之,delete from更新日志,truncate基本不,所用的事务日志空间较少。原创 2016-03-10 17:02:17 · 1791 阅读 · 1 评论