手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >SQL order by ID desc/asc加一个排序的字段解决查询慢问题
SQL order by ID desc/asc加一个排序的字段解决查询慢问题
摘要:解决方法就是在orderbyIDdesc再加一个排序的字段,这样子可能会把速度提高很多。再加止排序的字段因查询而异了如表复制代码代码如下:C...

解决方法就是在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

查询就非常的快了

【SQL order by ID desc/asc加一个排序的字段解决查询慢问题】相关文章:

SQL Server 2000中修改数据库COLLATE的实例

sql server 2008 r2 express 精简版与企业版的区别

SQL Server 中调整自增字段的当前初始值

SQL Server 2008 评估期已过怎么解决

SQL Server储过程加密和解密原理深入分析

SQL Server2005下的安全操作技巧分享

SQL Server 2008的逻辑查询处理步骤

SQL server 2005中设置自动编号字段的方法

SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

SqlServer 2005中使用row_number()在一个查询中删除重复记录

精品推荐
分类导航