摘要: 1.a. 并集UNION SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2b. 交集JOIN SELECT * FROM table1 AS a JOIN table2 b ON a.name=b.namec. 差集NOT IN SELECT * FROM table1 WHERE name NOT IN(SELECT name FROM table2)d. 笛卡尔积 SELECT * FROM table1 CROSS JOIN table2 与 SELECT * FROM table1 阅读全文
posted @ 2010-12-02 21:24 deepwishly 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解。比如:select * from table1 where name='zhangsan' and tID > 10000和执行:select * from table1 where tID > 10000 and name='zhangsan' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索引,那么后一句仅仅从表的10000条以后的记录中查找就行了;而前一句则 阅读全文
posted @ 2010-12-02 21:01 deepwishly 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K 。为了加快查找的速度,汉语字(词)典一般都有按拼音、笔画、偏旁部首等排序的目录(索引),我们可以选择按拼音或笔画查找方式,快速查找到需要的字(词)。同理,SQL Server允许用户在表中创建索引,指定按某列预先排序,从而大大提高查询速度。•SQL Server中的数据也是按页( 4KB )存放•索引:是SQL Server编排数据的内部方法。它为SQL Server提供一种方法来编排查询数据 。•索引页:数据库中存储索引的数据页;索引页类似于汉语字 阅读全文
posted @ 2010-12-02 19:55 deepwishly 阅读(131) 评论(0) 推荐(0) 编辑
摘要: SQLServer2008 当出现日志文件过大时,就可能需要缩小或删除日志文件,SQLServer已经提供了相关功能,操作为:右击需缩小的数据库 >> 选择“属性”菜单 >> 点击左边选择页列表的“文件”项 >> 修改字志文件的初始化大小和长度限制。根据实际需要可以设置初始化大小和长度限制,需注意的是“长度限制”必须比“初始化大小”大,把初始化大设置成想要的大小,日志文件就缩小了。如果不想使用日志文件可以把长度限制页面里的“启用自动增长”复选框去掉,再把初始大小设置为1就行了。 阅读全文
posted @ 2010-12-02 19:14 deepwishly 阅读(195) 评论(0) 推荐(0) 编辑
摘要: SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源 9、返回了不必要的行和列 10、查询语句不好,没有优化 可以通过以下方法来优化查询 : ... 阅读全文
posted @ 2010-12-02 17:12 deepwishly 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 由于数据库日志增长被设置为“无限制”,所以时间一长日志文件必然会很大,一个400G的数据库居然有600G的LOG文件,严重占用了磁盘空间。由于主要是做OLAP,所以数据库本身不会有大变动,所以日志也就没有多少作用了,因此想办法把数据库日志文件收缩到很小或者删除。网上搜索相关解决方案后,得到的答案丰富多彩,但是真正管用的方案并不多,这里分享一个csdn上找到的方法。这个方法讲述了SQL Server 2005和SQL Server 2008在收缩数据库日志的不同之处,颇有帮助。同时,该方法的效率很高,收缩600G的日志到10M只花了不到30秒。适用于SQL Server 2005的方法Backu 阅读全文
posted @ 2010-12-02 17:03 deepwishly 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 在SQL Server 2008下,网上以前流行的截断日志并收缩文件的方法不适合了,报语法错误。同时因为我的数据库日志增长非常快,大概每天在1G以上,因此必须对其进行收缩。经过在系统上的测试,感觉用SQL SERVER的维护计划更可行,现将操作方式简介如下:注:下面的说明中也提到了使用差异备份,因为数据库文件增长也非常快,因此此处也稍作说明。关注收缩数据库日志文件的可以忽略此部分内容。1、创建维护计划:2、创建子计划a、完整备份,每周一次b、差异备份,每天一次,或每天多次c、日志备份,每天一次d、收缩数据库e、删除备份文件,删除四周以前的备份文件,每天执行f、清除日志备份文件,每天执行3、关于 阅读全文
posted @ 2010-12-02 16:59 deepwishly 阅读(192) 评论(0) 推荐(0) 编辑