下面的插入代码应可以测试Ms sql server 2008的插入性能吧,相同的逻辑
在Mysql,Oracle却要比Sql server快1.5倍的左右..
有什么办法提高MS SQL SERVER的插入性能呢??create table TT(ID numeric(10),name char(20),Englist numeric(5,2),physics numeric(5,2));
go
declare @II int;
set @II=1;
while @II<99999
begin  
 insert into TT(ID,name,Englist,physics) values(3,'张三',89,98);
 set @II=@II+1;
end;
goselect COUNT(*) from TT;

解决方案 »

  1.   

    --sql 2000下.create table TT(ID numeric(10),name char(20),Englist numeric(5,2),physics numeric(5,2));SELECT TOP 99999 id = IDENTITY(int, 1, 1) INTO tmp FROM syscolumns a, syscolumns b , syscolumns cinsert into TT(ID,name,Englist,physics) select 3,'张三',89,98 from tmpselect * from ttdrop table tmp , tt
      

  2.   

    这个while循环嵌套了100000个事物提交create table TT(ID numeric(10),name char(20),Englist numeric(5,2),physics numeric(5,2));
    go
    declare @II int;
    set @II=1;
    while @II<99999
    begin  
     insert into TT(ID,name,Englist,physics) values(3,'张三',89,98);
     set @II=@II+1;
    end;
    goselect COUNT(*) from TT;这个在我的系统上是42秒然后把while做成一个事务的create table TT(ID numeric(10),name char(20),Englist numeric(5,2),physics numeric(5,2));
    go
    begin tran
    declare @II int;
    set @II=1;
    while @II<99999
    begin  
     insert into TT(ID,name,Englist,physics) values(3,'张三',89,98);
     set @II=@II+1;
    end;
    commit tran
    goselect COUNT(*) from TT;这个29秒
      

  3.   

    再说 谁说的不ORACLE就不能比SQL快了?这个结论是不正确的 
      

  4.   


    SELECT TOP 99999 id = IDENTITY(int, 1, 1) INTO tmp FROM syscolumns a, syscolumns b , syscolumns c哪个哥哥解释下这个不带关联的查询?
      

  5.   

    syscolumns a, syscolumns b , syscolumns c
    三表交叉连接,生成你需要的99999的数量.
      

  6.   


    我用循环的目的,就是测试一下大量用户并发插入的性能,,,不知这个方法好不好
    SQL2008 要20秒,Oracle却要6秒.....差距很大的,在相同硬件下
      

  7.   

    试试把循环做成一个事务,我上面写的那种,然后再看看oracle上如果执行过程中取消的话数据会不会全部回滚
      

  8.   

    具体硬件属于什么档次?
    我印象中中低档硬件,是mssql效率高的。另外,这种循环插入,oracle是不是有特别的优化,比如暂时 关闭日志,禁用索引(包括系统自动生成的隐含的?)。
      

  9.   


    你这条插入固定数量的数据确实高,,,!!
    如果不固定的Insert 语句插入怎么办呢???
      

  10.   

    搞清楚MSSQL的自动提交与ORACLE的明确提交
    MSSQL提交了多少,ORACLE提交了多少先