|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
mysql的prepare其实是本地PHP客户端模拟的,并没有根据你mysql的设置做字符集的调整。应该交与mysqlserver端做prepare,同时得调用mysql_set_character_set去操作,server才会按照字符集去做转义。sql2005|运算因为SIN函数盘算对照耗CPU,也对照典范,故分离完成1万万次SIN运举动当作对照
sql2005代码:
declare@iint;
declare@xfloat;
set@i=1;
while@i<=10000000
begin
set@x=sin(@i);
set@i=@i+1;
end;
go
耗时:26秒
sasDATA步代码:
data_null_;
lengthix8.;
i=1;
doi=1to10000000;
x=sin(i);
end;
run;
运转了局:
NOTE:“DATA语句”所用工夫(总处置工夫):
实践工夫1.72秒
CPU工夫1.70秒
耗时不到2秒
再对字符举行对照,我选择交换字符串做对照,也是分离完成1万万次举行字符串交换运举动当作对照
SQL代码
declare@iint;
declare@strvarchar(50);
declare@tarStrvarchar(50);
set@i=1;
set@str=ThisismyTest!;
while@i<=10000000
begin
set@tarStr=replace(@str,my,My);
set@i=@i+1;
end;
print@tarStr;
go
运转了局:耗时2分24秒
SASDATA步代码
data_null_;
lengthi8.;
lengthstrtarstr$50.;
str="ThisismyTest!";
i=1;
doi=1to10000000;
tarstr=tranwrd(str,"my","My");
end;
puttarstr;
run;
运转了局:耗时不到9秒
NOTE:DATAstatementused(Totalprocesstime):
realtime8.09seconds
cputime8.09seconds
开端总结:
举行一万万次SIN运算时,SQL2005耗时26秒,SAS不到2秒,差未几相差13倍
举行一万万次字符交换运算时,SQL2005耗时144秒,SAS不到9秒,差未几相差16倍
能够看出,SAS的数据处置才能能够说是超强,在这方面能够说任何以后数据库都不克不及比拟
假如不是因为SAS自己产物的限定,说不定早就在中国市场下流行了
:)假如有人想把SAS做的ETL转为用SQL2005做ETL时,可要思索客户的感觉了,想一想假如一会儿由本来的十几天的数据加载酿成几个月的数据加载,你就头疼把;固然假如只是小数据量加载之间的转换,仍是没成绩的
对照成心思的是,SAS的MERGE操纵一向以来都是请求输出的数据要先按指定字段举行排序才干MERGE,如今SQL2005供应的MERGE组件也有了如许的请求,有点像终究找到党构造的感到了
这类操作的执行过程是,1)按照新的表定义建立一个临时表tmpa,2)将原表数据拷贝到临时表,3)将原始表改名tmpb,4)将tmpa改名为原表名,5)将tmpb删除。 |
|