zoukankan      html  css  js  c++  java
  • 建索引(尤其是主键)时请注意索引列顺序

    IF OBJECT_ID('test_indexorder', 'U') IS NOT NULL  
        BEGIN 
     
            TRUNCATE TABLE test_indexorder 
     
            DROP TABLE test_indexorder 
     
        END 
     
    go 
     
    CREATE TABLE test_indexorder 
        ( 
          id INT IDENTITY(11
                 NOT NULL , 
          name VARCHAR(20NOT NULL , 
          content VARCHAR(50NOT NULL , 
          co1 VARCHAR(50) , 
          co2 VARCHAR(50) , 
          co3 VARCHAR(50) , 
          co4 VARCHAR(50) , 
          co5 VARCHAR(50) , 
          CONSTRAINT pk_testorder PRIMARY KEY CLUSTERED ( id DESC ) 
        ) 
     
    go 
     
    --insert 1000000 条数据 
     
    SET nocount ON ; 
     
    DECLARE @t DATETIME ; 
     
    SET @t = GETDATE() ; 
     
    DECLARE @cn INT ; 
     
    SET @cn = 1000000 ; 
     
    WHILE ( @cn > 0 )  
        BEGIN 
     
            INSERT  INTO test_indexorder 
                    ( name , 
                      content , 
                      co1 , 
                      co2 , 
                      co3 , 
                      co4 , 
                      co5 
                    ) 
            VALUES  ( 'name' + CAST(@cn AS VARCHAR(10)) , 
                      CAST(NEWID() AS VARCHAR(50)) , 
                      CAST(NEWID() AS VARCHAR(50)) , 
                      CAST(NEWID() AS VARCHAR(50)) , 
                      CAST(NEWID() AS VARCHAR(50)) , 
                      CAST(NEWID() AS VARCHAR(50)) , 
                      CAST(NEWID() AS VARCHAR(50)) 
                    ) ; 
     
            SET @cn = @cn - 1 ; 
     
        END 
     
    PRINT '插入时间(毫秒):' ; 
     
    PRINT DATEDIFF(millisecond, @t, GETDATE()) ; 
     
    SET nocount OFF ; 
     
    GO 
     
    CHECKPOINT 
     
    DBCC freeproccache 
     
    DBCC dropcleanbuffers 
     
    GO 
     
    go 
     
    SET nocount ON ; 
     
    DECLARE @t DATETIME ; 
     
    SET @t = GETDATE() ; 
     
    WITH    t_rn 
              AS ( SELECT   * , 
                            rn = ROW_NUMBER() OVER ( ORDER BY id DESC ) 
                   FROM     test_indexorder 
                 ) 
        SELECT  id , 
                name , 
                content , 
                co1 , 
                co2 , 
                co3 , 
                co4 , 
                co5 
        FROM    t_rn 
        WHERE   rn BETWEEN 19007 AND 19057 ; 
     
    PRINT '查询时间(毫秒)' 
     
    PRINT DATEDIFF(millisecond, @t, GETDATE()) 
     
    SET @t = GETDATE() ; 
     
    WITH    t_rn 
              AS ( SELECT   * , 
                            rn = ROW_NUMBER() OVER ( ORDER BY id ASC ) 
                   FROM     test_indexorder 
                 ) 
        SELECT  id , 
                name , 
                content , 
                co1 , 
                co2 , 
                co3 , 
                co4 , 
                co5 
        FROM    t_rn 
        WHERE   rn BETWEEN 17007 AND 17057 ; 
     
    PRINT '查询时间(毫秒)' 
     
    PRINT DATEDIFF(millisecond, @t, GETDATE()) 
     
    SET nocount OFF ; 
     
     
  • 相关阅读:
    AcWing 838. 堆排序
    AcWing 240. 食物链
    Sublime下载地址
    【转载】Java 8 Optional的正确姿势
    【SpringBoot】通过server.servlet.context-path设置应用的上下文路径
    【java/Lamda】List.stream().collect(Collectors.toMap(Emp::getId, a->a,(k1,k2)->k2))的意义
    Prometheus修改数据保留时间
    Atitit BLE 协议栈 艾提拉总结 目录 1. ——关于BLE的一些基本概念——
    Atitit 高并发设计实践 艾提拉著 目录 1. 并发的实现俩中模式 并发角度来看 基于事件触发vs线程的 1 2. 负载均衡 1 2.1. 云服务模型paas caas faas+http
    Atitit 锁的不同层级 app锁 vm锁 os锁 硬件锁 目录 1. 在硬件层面,CPU提供了原子操作、关中断、锁内存总线的机制 1 1.1. test and set指令 1 1.2. 锁内
  • 原文地址:https://www.cnblogs.com/qanholas/p/1860769.html
Copyright © 2011-2022 走看看