SQL order by ID desc/asc加一個(gè)排序的字段解決查詢慢問(wèn)題
如表
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成外建關(guān)系
于是建了一個(gè)視圖
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 '免費(fèi)' when '02' then '點(diǎn)播' 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
一開(kāi)始的查詢語(yǔ)句為
select top 6*from [ViewCMPP_SendCentreMo]
where SendType = '扣費(fèi)'
order by id desc
發(fā)現(xiàn)非常的慢
經(jīng)過(guò)了解,原因是order by id desc/asc的查詢是一行一行的找數(shù)據(jù),所以非常的慢
于是改成了
select top 6*from [ViewCMPP_SendCentreMo]
where SendType = '扣費(fèi)'
order by SendCentreID desc, id desc
查詢就非常的快了
- SQL Server 排序函數(shù) ROW_NUMBER和RANK 用法總結(jié)
- 讓MySQL支持中文排序的實(shí)現(xiàn)方法
- sqlserver中將varchar類(lèi)型轉(zhuǎn)換為int型再進(jìn)行排序的方法
- sql多條件多字段排序(圖文教程)
- Mysql select in 按id排序?qū)崿F(xiàn)方法
- SQL字符型字段按數(shù)字型字段排序?qū)崿F(xiàn)方法
- MYSQL 關(guān)于兩個(gè)經(jīng)緯度之間的距離由近及遠(yuǎn)排序
- Mysql中的排序規(guī)則utf8_unicode_ci、utf8_general_ci的區(qū)別總結(jié)
- SQL-ORDER BY 多字段排序(升序、降序)
- SQL語(yǔ)句實(shí)現(xiàn)表中字段的組合累加排序
相關(guān)文章
SqlServer參數(shù)化查詢之where in和like實(shí)現(xiàn)之xml和DataTable傳參介紹
在上一篇Sql Server參數(shù)化查詢之where in和like實(shí)現(xiàn)詳解中介紹了在Sql Server使用參數(shù)化查詢where in的幾種實(shí)現(xiàn)方案,遺漏了xml和表值參數(shù),這里做一個(gè)補(bǔ)充2012-05-05sqlserver 復(fù)制表 復(fù)制數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的方法
復(fù)制整個(gè)SqlServer數(shù)據(jù)庫(kù)的問(wèn)題的比較好的方法2008-02-02SQL Server約束增強(qiáng)的兩點(diǎn)建議
我們可以在CHECK的約束條件中加入任何邏輯表達(dá)式,而目前所有外鍵只能用來(lái)驗(yàn)證一個(gè)或多個(gè)列的值是否相等。2009-05-05SQL Server把某個(gè)字段的數(shù)據(jù)用一條語(yǔ)句轉(zhuǎn)換成字符串
這篇文章主要介紹了SQL Server把某個(gè)字段的數(shù)據(jù)用一條語(yǔ)句轉(zhuǎn)換成字符串,本文講解使用一條語(yǔ)句把字段中的數(shù)據(jù)查詢出來(lái)并以指定分割符組成字符串,需要的朋友可以參考下2015-07-07SQL SERVER 2014 安裝圖解教程(含SQL SERVER 2014下載)
這篇文章主要介紹了SQL SERVER 2014 安裝圖解教程(含SQL SERVER 2014下載),需要的朋友可以參考下2015-10-10SQL Server中使用sp_password重置SA密碼實(shí)例
這篇文章主要介紹了SQL Server中使用sp_password重置SA密碼實(shí)例,一般在忘記SA密碼時(shí)的恢復(fù)手段,需要的朋友可以參考下2014-08-08SQL Server無(wú)日志恢復(fù)數(shù)據(jù)庫(kù)(2種方法)
SQL Server數(shù)據(jù)庫(kù)中的日志文件可能會(huì)由于一些突發(fā)事件或者失誤造成丟失的嚴(yán)重后果,大家都知道,SQL Server數(shù)據(jù)庫(kù)中日志文件是很重要的,所以要及時(shí)的將丟失的日志文件給找回來(lái)。下文就為大家介紹一種恢復(fù)數(shù)據(jù)庫(kù)日志文件的方法。2015-08-08將mater庫(kù)中的系統(tǒng)存儲(chǔ)過(guò)程批量生成*.sql文件 通用且非常實(shí)用
最近因?yàn)橄到y(tǒng)需要,需要將master庫(kù)的所有和業(yè)務(wù)相關(guān)的存儲(chǔ)過(guò)程批量生成 存儲(chǔ)過(guò)程名.sql 文件,默認(rèn)是不可以導(dǎo)出的2012-05-05