程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL order by ID desc/asc加一個排序的字段處理查詢慢成績

SQL order by ID desc/asc加一個排序的字段處理查詢慢成績

編輯:MSSQL

SQL order by ID desc/asc加一個排序的字段處理查詢慢成績。本站提示廣大學習愛好者:(SQL order by ID desc/asc加一個排序的字段處理查詢慢成績)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL order by ID desc/asc加一個排序的字段處理查詢慢成績正文


處理辦法就是在order by ID desc再加一個排序的字段,如許子能夠會把速度進步許多。再加止排序的字段因查詢而異了
如表

CREATE TABLE [dbo].[CMPP_SendCentre] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[SendType] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[SendDate] [datetime] NOT NULL ,
[Port] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Service_ID] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FeeType] [varchar] (2) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FeeCode] [varchar] (6) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Msg_Content] [varchar] (1024) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[SendCount] [int] NOT NULL ,
[SucceedCount] [int] NOT NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[CMPP_SendCentreMo] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[SendCentreID] [int] NOT NULL ,
[Mo] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Stat] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CMPP_SendCentreMo.SendCentreID 與CMPP_SendCentre.ID成外建關系

因而建了一個視圖

CREATE VIEW dbo.ViewCMPP_SendCentreMo
AS
SELECT
dbo.CMPP_SendCentreMo.id,
dbo.CMPP_SendCentreMo.SendCentreID,
dbo.CMPP_SendCentreMo.Mo,
dbo.CMPP_SendCentreMo.Stat,
dbo.CMPP_SendCentre.SendType,
dbo.CMPP_SendCentre.SendDate,
dbo.CMPP_SendCentre.Port,
dbo.CMPP_SendCentre.Service_ID,
case dbo.CMPP_SendCentre.FeeType when '01' then '收費' when '02' then '點播' else '包月' end as FeeType,
cast(dbo.CMPP_SendCentre.FeeCode as smallint) as FeeCode,
dbo.CMPP_SendCentre.Msg_Content
FROM dbo.CMPP_SendCentre INNER JOIN
dbo.CMPP_SendCentreMo ON
dbo.CMPP_SendCentre.id = dbo.CMPP_SendCentreMo.SendCentreID

一開端的查詢語句為

select top 6*from [ViewCMPP_SendCentreMo]
where SendType = '扣費'
order by id desc

發明異常的慢
經由懂得,緣由是order by id desc/asc的查詢是一行一行的找數據,所以異常的慢
因而改成了

select top 6*from [ViewCMPP_SendCentreMo]
where SendType = '扣費'
order by SendCentreID desc, id desc

查詢就異常的快了
/> def compList(list1,list2):
    return list(set(list1)-set(list2))
'''
復制List中文件到指定地位
'''
def copyFiles(fileList,targetDir):
    for file in fileList:
        targetPath=os.path.join(targetDir,os.path.dirname(file))
        targetFile=os.path.join(targetDir,file)
        if not os.path.exists(targetPath):
            os.makedirs(targetPath)
        if not os.path.exists(targetFile) or (os.path.exists(targetFile) and os.path.getsize(targetFile)!=os.path.getsize(file)):
            print "正在復制文件:"+file
            open(targetFile,'wb').write(open(file,'rb').read())
        else:
            print "文件已存在,不復制!"
if __name__ == '__main__':
    path=".svn"
    #獲得源目次
    txtFile="1.txt"
    #目次構造輸入的目標文件
    tdir="cpfile"
    #復制到的目的目次
    cfFile="config.ini";
    #設置裝備擺設文件文件名
    fileList=[]
    #讀取設置裝備擺設文件
    if(os.path.exists(cfFile)):
        cf=ConfigParser.ConfigParser()
        cf.read(cfFile)
        path=cf.get("main", "sourceDir")
        txtFile=cf.get("main","txtFile")
        tdir=cf.get("main","targetDir")
    else:
        print "設置裝備擺設文件不存在!"
        raw_input("\n按 回車鍵 加入\n")
        exit()
    if(os.path.exists(txtFile)):
        #假如導出的文件存在,就讀取後比擬
        list1=readFileToList(txtFile)
        print "正在讀取文件列表……"
        fileList=listDir (fileList,path)
        print "正在比擬文件……"
        list_res=compList(fileList,list1)
        if len(list_res)>0:
            print "以下是原目次中不存在的文件:\n"
            print "\n".join(list_res)
            print "\n合計文件數:"+str(len(list_res))+"\n"
            if raw_input("\n能否復制文件?(y/n)")!='n':
                copyFiles(list_res,tdir)
        else:
            print "沒有不雷同的文件!"
    else:
        #假如導出的文件不存在,則導出文件
        print "正在讀取文件列表……"
        fileList=listDir (fileList,path)
        writeListToFile(fileList,txtFile)
        print "已保留到文件:"+txtFile
    raw_input("\n按 回車鍵 加入\n")
3. 設置裝備擺設文件名:config.ini以下:
#設置裝備擺設文件名:config.ini
[main]
sourceDir=wwwroot
txtFile=1.txt
targetDir=cp

願望本文所述對年夜家的Python法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved