MSSQL编程:SQL Query Analyzer
这里我们讨论用binlog来实现闪回的方案。19.3.1SQLQueryAnalyzer简介SQLQueryAnalyzer是一个图形化的办理工具,次要用于编写、测试Transact-SQL语句、批处置。体系办理员和开辟者经由过程SQLQueryAnalyzer可以同时实行多个查询、检察查询了局、剖析查询企图,从而懂得怎样进步查询实行的功能。从SQLServerEnterpriseManager能够将其启动。SQLQueryAnalyzer供应了以下特征:
[*]为编写Transact-SQL语句供应了自在格局的文本编纂器;
[*]将Transact-SQL语法用黑色代码显现,从而进步了庞大语句的可读性;
[*]工具扫瞄和搜刮工具使在数据库中寻觅某一数据库工具变得更加简单;
[*]包括创立数据库工具的基础语句的模板文件,从而进步了利用Transact-SQL语句创立数据库工具的速率;
[*]剖析存储历程的调试器;
[*]了局集能够以表格或文本格局显现;
[*]图形化的实行企图显现了实行Transact-SQL的每个逻辑步骤。
19.3.2设置SQLQueryAnalyzer
在利用SQLQueryAnalyzer之前,起首要对其查询选项举行设置。由于这些选项间接决意了查询的显现信息、查询了局和SQL语句实行企图的显现格局和内容。设置SQLQueryAnalyzer次要有两种办法:一种是经由过程SQLQueryAnalyzer,另外一种是经由过程SET命令来完成。在这里我们只先容前一种办法。
起首启动SQLQueryAnalyzer,然后在工具栏的Query菜单下选择CurrentConnectionProperties菜单项。翻开CurrentConnectionProperties对话框,如9-7所示。
个中各选项的寄义为:
[*]Setnocount
暗示在前往信息中不包含查询语句所影响行数信息。
[*]Setnoexec
暗示编译但不实行语句。
[*]Setpar搜索引擎优化nly
暗示剖析但不编译或实行语句。
[*]Setconcat_null_yields_null
暗示假如串连中的任何一个操纵数为NULL,则前往值为NULL。
[*]Setrowcount
暗示前往指定行数的查询了局集然后停止查询处置。
[*]Setarithabort
暗示在查询处置中,假如呈现零做除数或运算溢堕落误,则停止查询。
[*]Setshowplan_text
暗示显现查询的实行信息。
[*]Setstatisticstime
暗示显现剖析、编译、实行语句所必要的工夫,其单元为微秒。
[*]SetstatisticsIO
暗示显现磁盘举动信息。
[*]SetstatusI/O
暗示显现实行查询时磁盘举动的形态信息。
[*]Setansi_default
暗示按SQL-92尺度设置以下选项。
19.3.3利用SQLQueryAnalyzer
在本节开首部分,我们已先容了有关SQLQueryAnalyzer的特征和它所具有的功效.一般来讲,SQLQueryAnalyzer次要能够匡助完成以下四年夜功效:
[*]实行SQL语句
[*]剖析查询企图
[*]显现查询统计情形
[*]完成索引剖析
上面以一个实践例子来说解SQLQueryAnalyzer是怎样完成这些功效,的和它又是如何匡助体系办理员或使用程序开辟者完成索引剖析和查询企图剖析。
起首在文本编译器中输出以下的查询语句:
然后选择工具栏的Query菜单下的showexecutionplan和showclientstatistics选项。接着单击工具栏上ExecuteQuery,此时在文本编纂器的下半部分的三个标签页上分离显现查询的了局集查,询实行企图和统计信息。
该图显现了由查询优化器(QueryOptimizer)所决意的查询数据的办法。在这里所利用的图形化实行企图是利用图标而不是表格来代表详细某一语句和查询的实行情形,从而有益于了解实行的具体情况。除此以外,SQLQueryAnalyzer还可以指出还应当在哪些列上创立索引以便进步查询功能,和给出有关非索引列的统计信息。
选中Statistics标签页,如9-9所示。
这些统计信息次要由查询处置器利用,经由过程统计信息,其可以在查询评价阶段来决意最优的查询战略是甚么。在表上创立索引以后,SQLServer主动将有关索引列散布值的统计信息存储起来,以备查询优化器今后利用。以是,假如某一列的值产生变更,则其最好的查询战略也将改动,因查询优化器仍利用其存储的统计信息来举行查询决议,从而下降了查询效力。
本章小结
本章次要先容了SQLMail、SQLServerProfiler、QueryAnalyzer的主要功效及其用法,较为具体地论述了各主题、各工具所触及的有关成绩。SQLMail为SQLServer供应邮件传送服务;SQLServerProfiler匡助体系办理员监督数据库和服务器的举动,进步了办理效力;SQLQueryAnalyzer为体系办理员和开辟者可以检察查询了局、剖析查询企图供应了便当前提,从而懂得怎样进步查询实行的功能。因此我们的保存数据方法就是:在删除的动作开始之前,把表数据备份起来,然后留一个空表,在空表上执行“删除”操作。 现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层. 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 可以动态传入参数,省却了动态SQL的拼写。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层. 总感觉自己还是不会SQL 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
页:
[1]