zoukankan      html  css  js  c++  java
  • 大数据量的查询

    1.用临时表

    2.用存储过程

    3.建索引

    -- =============================================
    -- Author:        Ylem
    -- Create date: 2009-12-23
    -- Description:    得到导入简历列表
    -- =============================================
    alter PROCEDURE [dbo].[proc_GetImportResumeBaseByconditions2]
    (
        @ConditionSql  varchar(3000),
        @Size int,
        @index varchar(10),
        @count int output
    )
    AS    
    BEGIN
        --SET NOCOUNT ON;
        
        DECLARE @sql nvarchar(4000)
        
        CREATE TABLE #ResumeBase (
            ResumeID uniqueidentifier PRIMARY KEY
            ,JobSeekerID uniqueidentifier
            ,ResumeCode varchar(64)
            ,ResumeSourceSite varchar(20)
            ,ResumeSourceID varchar(64)
            ,UpdateDate datetime
            ,CreateDate datetime
            ,AuditStatue Smallint)
            
        CREATE TABLE #BuyResume(ResumeID uniqueidentifier PRIMARY KEY, Quantity int)
        INSERT INTO #BuyResume(ResumeID, Quantity)
        SELECT ResumeID, COUNT(*) Quantity
        FROM BuyNoContactResume
        GROUP BY ResumeID    
        
        INSERT INTO #ResumeBase
        EXEC (@ConditionSql)
        
        CREATE INDEX IX_ResumeBaseTemp_JobSeekerID ON #ResumeBase(JobSeekerID ASC);        
                    
        CREATE TABLE #TempRecord (IndexID int /*IDENTITY (1, 1) NOT NULL primary key*/,
            ResumeID uniqueidentifier
            ,ResumeCode varchar(64)
            ,ResumeSourceSite varchar(20)
            ,ResumeSourceID varchar(64)
            ,UpdateDate datetime
            ,CreateDate datetime
            ,CityID varchar(20)
            ,ContactState tinyint
            ,Sex bit
            ,Age int
            ,Degree int
            ,LastLoginDate datetime
            ,AuditStatue smallint)
        
            SET @sql = '
            SELECT IndexID = ROW_NUMBER() OVER(ORDER BY CreateDate), t.*
            FROM (
                    SELECT
                        rb.ResumeID
                        ,rb.ResumeCode
                        ,rb.ResumeSourceSite
                        ,rb.ResumeSourceID
                        ,rb.UpdateDate
                        ,rb.CreateDate
                        ,i.CityID
                        ,i.ContactState
                        ,i.Sex
                        ,datediff(yy,i.Birthday,getdate()) Age
                        ,i.Degree
                        ,u.LastLoginDate
                        ,rb.AuditStatue
                    FROM
                        #ResumeBase rb
                        JOIN JobSeekerInfo i ON i.JobSeekerID = rb.JobSeekerID
                        join jobseekeruser u on u.JobSeekerID = rb.JobSeekerID
                    WHERE i.ContactState =0
                ) t'

        
        INSERT INTO #TempRecord
        EXEC (@sql)
        --返回统计数
        SELECT @count = max(IndexID) from #TempRecord    

        --返回数据
        SELECT * FROM #TempRecord tmp
        WHERE IndexID > (@index*@Size) and IndexID<=((@index + 1) * @Size)
        DROP TABLE #TempRecord
    END 

  • 相关阅读:
    数论模板
    HZNU_TI1050 训练实录
    2019 ICPC Asia Xuzhou Regional
    ICPC 2019-2020 North-Western Russia Regional Contest
    2019 ICPC Asia Yinchuan Regional
    2019-2020 ICPC, Asia Jakarta Regional Contest
    The 2019 China Collegiate Programming Contest Harbin Site
    2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest
    Educational Codeforces Round 75
    2018-2019 ACM-ICPC, Asia Dhaka Regional Contest
  • 原文地址:https://www.cnblogs.com/ylemzhang/p/1667767.html
Copyright © 2011-2022 走看看