zoukankan      html  css  js  c++  java
  • sql中多表查询

    create table Testing
    (
        ID int identity(1,1) primary key nonclustered,
        Data float not null default 0,
        Style smallint not null default 0,
        AddTime DateTime not null default getdate(),
        Data2 float not null default 0,
        Data3 float not null default 0,
        Data4 float not null default 0,
        Data5 float not null default 0,
        Data6 float not null default 0,
        Data7 float not null default 0,
    ) 
    
    declare @j int
    declare @data float
    declare @style smallint
    set @j = 1
    while @j<5000000
        begin
           set @data = floor(rand()*100000.0000)
           set @style = CAST(rand() * 6 as smallint)
           insert into Testing(Data, Style, AddTime) values(@data,@style,getdate())
        set @j = @j + 1
    end 
    
    declare @d datetime
    set @d = getdate()
    declare   @i   int
    
     
    
    -------------------------------------------------------------------------------------
    set   @i=0
    while   @i <20
    begin
        select top 1 * from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
        select top 1 * from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
        set   @i   =   @i+1
    end
    -------------------------------------------------------------------------------------
    select [语句执行时间(毫秒)]=datediff(ms, @d, getdate())
    print '全部1 语句执行时间(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))
     
    
    --=======================================================================================
    set @d = getdate()
    -------------------------------------------------------------------------------------
    set   @i=0
    while   @i <20
    begin
        select top 1 * from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
        union all
        select top 1 * from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
    set   @i   =   @i+1
    end
    -------------------------------------------------------------------------------------
    select [语句执行时间(毫秒)]=datediff(ms, @d, getdate())
    print '全部2 语句执行时间(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate())) 
     
    
    --=======================================================================================
    
    set @d = getdate()
    -------------------------------------------------------------------------------------
    set   @i=0
    while   @i <20
    begin
        select top 1 Data from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
        select top 1 Data from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
        set   @i   =   @i+1
    end
    -------------------------------------------------------------------------------------
    select [语句执行时间(毫秒)]=datediff(ms, @d, getdate())
    print '截取1 语句执行时间(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))
     
    
    --=======================================================================================
    
    set @d = getdate()
    -------------------------------------------------------------------------------------
    set   @i=0
    while   @i <20
    begin
        select top 1 Data from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
        union all
        select top 1 Data from Testing with(readpast) where [AddTime]>=(select max([AddTime]) from Testing with(readpast) where [Style]=0)
    set   @i   =   @i+1
    
    end
    
    -------------------------------------------------------------------------------------
    
    select [语句执行时间(毫秒)]=datediff(ms, @d, getdate())
    print '截取2 语句执行时间(毫秒):' + CONVERT(varchar(30), datediff(ms, @d, getdate()))
     
    
    
    结论,查询越少的字段速度越快,多条sql语句比组合成单条要慢
  • 相关阅读:
    Android入门之旅1—ubuntu11.04上搭建And​roid SDK开发环境
    Android入门之旅3—ubuntu11.4上通过adb连接M9手机
    HTML页面的控件的显示与隐藏
    Javascript所属document对象使用细说(转载)
    php备份和恢复mysql数据库
    VB.net 代码 调用外部Ping命令判断网络连通状况
    面向对象技术第一讲 多态性
    无法在Web服务器上启动调试。未将项目配置为进行调试
    (PHP,mysql)Fatal error: Call to undefined function mysql_connect() 解决方案
    left join inner 使用细节
  • 原文地址:https://www.cnblogs.com/smallidea/p/2575052.html
Copyright © 2011-2022 走看看