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

你可能感兴趣的:(sql)