TSQL近段使用总结
近两个月一直在做的项目是进行用户分析,其中主要的工作就是从两个数据量相对较大的表中汇总数据。
1.由于表本身比较大,查询相对复杂,我就使用临时表,先根据查询条件过滤一部分数据到临时表中。
2.再对临时表进行关联查询,这样降低联接时的数据量。查询前还对关键字段进行了索引。
3.我设置了事务隔离级别为uncommited read.也可以在查询的时候在表后加with(nolock) 这样可以提高查询速度。
下面的一个用户表值函数是常见的sqlserver中的类似split的函数,这个是自己写的。
View Code
CREATE FUNCTION uf_split( @string VARCHAR(500)
,@delimiter CHAR(1)
)
returns @table TABLE([split] varchar(20))
AS
BEGIN
SET @string=@string +@delimiter
WHILE (CHARINDEX(@delimiter,@string)>0)
BEGIN
INSERT INTO @table VALUES (LEFT(@string,CHARINDEX(@delimiter,@string)-1))
SET @string=STUFF(@string,1,CHARINDEX(@delimiter,@string),'')
END
RETURN
END
Looking for a job working at Home about MSBI