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 

  • 相关阅读:
    常见的医学影像数据格式
    如何加到可选Kernel中?(jupyter notebook)
    GITHUB(3.2)实际动手使用
    GITHUB(3.1)前期准备
    GITHUB(2.1-2.5)Git的导入
    GITHUB(1.5)GitHub提供的主要功能
    HTML
    python day21
    python day20
    python day19
  • 原文地址:https://www.cnblogs.com/ylemzhang/p/1667767.html
Copyright © 2011-2022 走看看