This Domain(Admin5.com) is for Sale:

使用SQL Query Analyzer和SQL Profiler

时间:2007-12-23  来源:不详  作者:迈克DB

FROM Orders, OrderDetails
HASH GROUP BY CustomerID
OPTION(HASH GROUP)
________________________________________
说明
GROUP BY 提示彼此独立-每次只能使用其中一种。
________________________________________
联合提示 下面的提示是用来指定如何执行 UNION 操作:
• MERGE UNION 使用合并操作来执行 UNION。
 
• HASH UNION 使用杂凑函数来执行 UNION。
 
• CONCAT UNION 使用串联功能来执行 UNION。
 
这是一个使用 CONCAT UNION 提示的范例:
SELECT OrderID, CustomerID, EmployeeID, OrderDATE
FROM orders
WHERE CustomerID = 'TOMSP'
UNION
SELECT OrderID, CustomerID, EmployeeID, OrderDate
FROM orders
WHERE EmployeeID = '4'
OPTION (CONCAT UNION)
________________________________________
说明
UNION 提示也是彼此独立的。
________________________________________
不幸的是,没有任何一定的公式可用以确定哪种 UNION 操作在您的环境中执行的最好。再一次说明,最好的途径就是使用 Query Analyzer 来尝试不同的 UNION 提示,看看哪种可以提供最少的消耗。通常 SQL Server Query Optimizer 可以为 UNION 提示决定最佳策略。

织梦内容管理系统


杂项提示 下面的提示可以用来执行多种的查询操作:
• FORCE ORDER 强制查询按照查询中数据表出现的次序执行。在预设状态下,SQL Server 可以重新排序数据表存取。
 
• ROBUST PLAN 强制 Query Optimizer 预备取得最有可能的最大数据列数。
 
以下是使用这个提示的范例:
SELECT OrderID, CustomerID, Employees.EmployeeID, FirstName,
  LastName, OrderDate
FROM Orders, Employees
WHERE Orders.EmployeeID = Employees.EmployeeID
OPTION (ROBUST PLAN)
资料表提示
 
数据表提示 (table hints)用来控制数据表存取,两种数据表提示如下:
• FAST n 替代 FASTFIRSTROWS,用来保持向后的兼容性。最佳化查询以获得最前面n列的数据。
 
• INDEX=index_name 强制 Query Optimizer 在可能时使用指定的索引。在本章中的前面的范例之一示范了如何使用 INDEX 提示:
 
•SELECT OrderID, CustomerID, EmployeeID, OrderDate
• FROM orders WITH (INDEX = EmployeeID)
• WHERE EmployeeID = 5
OPTION (FAST 10)
WITH是选择性的。
这里的 INDEX = EmployeeID 提示将指定使用 EmployeeID 索引。透过指定FAST 10,SQL Server 将最佳化前面 10 列的取得(假如可能的话),然后传回剩下的列。 内容来自dedecms
本章总结
 
在本章中,您学到了如何使用 Query Analyzer 以确定对查询最佳的执行计划和数据存取方法。另外,您还学到了如何使用 Profiler 来检视系统中执行的 T-SQL 陈述式,以及如何执行追踪来确定是否其中一些 T-SQL 陈述式可能导致效能问题。还讨论了如何根据您的数据库和数据以最佳化执行计划和数据库存取方法。最后,您学到了如何使用提示来指定一个特定的执行计划或数据存取方法。在 第 36 章 中,您学习的主题将发展为效能问题以及如何解决效能问题。 本文来自织梦


看完这篇,您有何感觉呢?

文章评论

共有位Admini5网友发表了评论 查看完整内容

24小时热门信息