提高insert插入速度
SQL中insert是我们常用到的一个句子了,平时都会使用insert插入数据语句,特别是有时候需要一个大批量的数据来做测试,一条一条insert将会是非常慢的,那么我们如何让我们的inser更快呢。 先看个例子: 我们需要在如下这个表中插入测试数据,包含两列,一个是itemid,一个是itemname。如果向这个表中插入103,680,000 条记录,普通的插入方法可能需要20多天才能完成,但是用这里介绍的新方法在5个小时内就能够完成。 先看一般的数据插入方法,假设我们向上表中插入100000 条数据: 复制代码代码如下: CREATE TABLE #tempTab...
SQL复制数据库数据到另一个数据库
-- -- -- -- -- -- -- -- -- -- -- -- --功能:复制DB_A中所有表的数据到另一个数据库DB_B --作者:数据库之家 --时间:2012-02-02 -- -- -- -- -- -- -- -- -- -- -- DECLARE CUR_C CURSOR FOR SELECT name FROM dbo.sysobjects WHERE type='u' ORDER BY name DESC OPEN CUR_C DECLARE @NAME VARCHAR(50) DECLARE @SQL VARCHAR(1000) FETCH NEXT FROM cur_c INTO @NAME WHILE(@@FETCH_STATUS=0) BEGIN SET @SQL='INSERT INTO DB_A.DBO.'+@NAME+' SELECT * FROM DB_ B.DBO.'+ @NAME...
SQL Server中 索引的使用
使用索引来更快地遍历表。 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。 一般来说: ①.有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by、group by发生的列,可考虑建立群集索引 ②.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; ③.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。
IN和EXISTS
IN和EXISTS EXISTS要远比IN的效率高。里面关系到full table scan和range scan。几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。
IS NULL与IS NOT NULL
IS NULL 与 IS NOT NULL 不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的。
SQL Server分布式查询
SQL Server所谓的分布式查询(Distributed Query)是能够访问存放在同一部计算机或不同计算机上的SQL Server或不同种类的数据源, 从概念上来说分布式查询与普通查询区别 它需要连接多个MSSQL服务器也就是具有多了数据源。实现在服务器跨域或跨服务器访问。 而这些查询是否被使用完全看使用的需要。 本篇将演示利用SQL ServerExpress链接远程SQL Server来获取数据方式来详细说明分布式查询需要注意细节。先看一下系统架构数据查询基本处理: 当然如果采用了分布式查询 我们系统采取数据DataBase也就可能...
sql中的money类型说明
mysql没有money类型 sql server才有money类型 说明如下: money 保存货币值数据类型,范围为-922337203685477.5808到+922337203685477.5808 最大长度为8字节。 smallmoney 保存货币值数据类型,范围为-214748.3647到+214748.3647 最大长度为4字节。 可见,可以考虑用double类型,因为,double是8个字节,而float只有4个字节
数据库设计命名规范参考
总则:不管你用什么命名方法,所有的命名规则一定要统一,不要一会儿中文拼音一会儿英文等等。 1、采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。 2、每个数据库对象表,视图,字段,存储过程,不要用任何数据库的关键词作为名称。凡是能写注释的地方,应该写上注释,以便查看。 3、名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。 4、对长度也要有限制,最好不要超过30个字符,在PD设置生成时,部分数据库对象会自动截取到30位。 5、所有名称的...
Sql Server2008格式化工具
自带的没有。 可以使用插件 SSMSToolsPack 和 sql complete 前者完全免费,得过2010国外一个评比的免费插件银奖还是铜奖。可以格式话关键字的大小写,SQL Snippets 这个功能比较好,定义常用的语句的缩写,以前很长的语句几个字母代表回去就写完了,省了不少时间。还有很多很有用的功能,具体的可以到http://www.ssmstoolspack.com/去看看 后者用的少,要使用全部功能的话,得花钱。免费版就可以格式化书写的格式了http://www.devart.com/dbforge/sql/sqlcomplete/ sql server 都没有出现过自带格式化功能,都是通...
SQL触发器删除关联记录
SQL触发器:当改变(增、删、改)数据表的记录时,绑定在SQL语句(增、删、改)中的触发器能够触发某些事件或者函数,所以我们可以在触发器中编写一些处理语句。 比如,当我们删除新闻类别的时候,由于外键的原因,我们无法删除新闻类别下有新闻内容的记录,但是通过触发器,我们就可以实现。 delete from category where id=5 --sql删除语句 create trigger trigcategorydelete --当执行sql删除语句时,执行触发器 on category after delete as begin delete news where caId=(select id from deleted) --删除...