51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> sqlserver >> 文章正文

如何优化表的数据输出速度

更新时间:2013-8-31:  来源:51代码网

如何优化表的数据输出速度

目前我建立的表sql 如下,请问该如何优化输出速度
硬件无法改变,所以只能从设置上寻求答案
假设已经包含所有所需索引,以及每次都会先进行索引重组或优化,关于每个列的长度,因为涉及到源头表的长度设定,所以无法进行缩减
CREATE TABLE [dbo].[FactChangeRequest](
[ChangeRequestID] [int] IDENTITY(1,1) NOT NULL,
[MappingSchemaID] [int] NOT NULL,
[AffectedProgramTagID] [int] NOT NULL,
[BaseStatusID] [int] NOT NULL,
[CustomerSeverityID] [int] NOT NULL,
[ProbOfCustomerOccurrenceID] [int] NOT NULL,
[EngineeringPriorityID] [int] NOT NULL,
[ProductLifeCycleID] [int] NOT NULL,
[ProjectID] [int] NOT NULL,
[ProductID] [int] NOT NULL,
[TypeID] [int] NOT NULL,
[DispositionClassificationID] [int] NOT NULL,
[BlockerID] [int] NOT NULL,
[SeverityID] [int] NOT NULL,
[SourceSystemID] [int] NOT NULL,
[SourceIssueID] [nvarchar](100) NOT NULL,
[CustomerEncountered] [char](1) NOT NULL,
[CustomerEscalated] [char](1) NOT NULL,
[ForecastOfCustBaseEncountering] [char](1) NOT NULL,
[SubmitDate] [datetime] NULL,
[TerminalStateDate] [datetime] NULL,
[LastUpdateTime] [datetime] NULL,
[CreateBy] [int] NOT NULL,
[CreateDate] [datetime] NOT NULL,
[UpdateBy] [int] NOT NULL,
[UpdateDate] [datetime] NOT NULL,
[Status] [char](1) NOT NULL,
 CONSTRAINT [PK_FactChangeRequest_ChangeRequestID] PRIMARY KEY CLUSTERED
(
[ChangeRequestID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

--#1.根据下面4步,测试你的时间,是花费在SQL执行?SQL SERVER数据输出(包括网络)?ADO或OLEDB接口执行?还是前台数据绑定并显示?
--#2.如果#1和#2的测试相差非常大,SORRY,除了提高网络带宽,貌似没有什么好方法了。

SQL code?--创建一个表TEST,存储语句执行时间 CREATE TABLE test(exec_time INT)   --#1.用MSSM执行,看一下从提交查询到数据显示到MSSM中结果的时间 DECLARE @begin DATETIME SET @begin = GETDATE() SELECT * FROM master..spt_values INSERT INTO test(exec_time) SELECT DATEDIFF(millisecond, @begin, GETDATE()) SELECT * FROM test   --#2.工具栏-》查询选项(显示估计的执行计划右边那个图标)-》结果-》网络-》勾选“执行后放弃结果”,进行和#1同样的测试 DECLARE @begin DATETIME SET @begin = GETDATE() SELECT * FROM master..spt_values INSERT INTO test(exec_time) SELECT DATEDIFF(millisecond, @begin, GETDATE()) SELECT * FROM test    --打开另一个连接查看TEST中的结果   /* exec_time 123 6 */   --#3.调试你的前台代码,测试从提交SQL到返回到前端的时间用了多少。 --#4.测试数据从返回,再到完全展现到界面上用了多长时间。

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |