GitHub上热门的Java开源项目
读取查询计划 如果想更深入地了解数据库性能,读取查询计划非常有用。运行查询时,SQL Server会根据执行计划对其进行处理。你可以在运行查询时生成计划,或者如果查询已在运行,则查看缓存的计划,可以查看在查询的每个步骤上花费了多长时间。 有经验的SQL向导可以从查询计划中读取很多细微差别。但是,专业的开发人员需要知道的是搜索和扫描之间的区别。
搜寻通常更有效。如果要优化查询,则应确定查询中扫描的位置并进行修复。解决它们的最简单方法是确保加入了索引字段。
如果缺少查询中可能使用的索引,SQL Server会发出通知。该建议将出现在查询计划的顶部。如果右键单击建议索引的查询计划,然后选择“缺少索引详细信息”,甚至可以生成索引创建脚本。 索引 首先需要了解的索引概念是聚集索引和非聚集索引之间的区别。 聚集索引:根据索引将所有数据存储在表中。只能有一个聚集索引,默认情况下,主键为聚集。 非聚集索引:将索引字段与表分开存储。该索引字段指向表中存储的数据,就像书的索引一样。 要提高查询效率,就要增加存储量。非聚集索引需要自己存储,因为它们与表数据保持独立。仅索引需要过滤或加入的字段,以便在存储和性能之间找到最佳平衡。 索引编制是优化数据库性能的最佳方法。索引会影响数据在页面中的存储方式。默认情况下,记录不会以特定的顺序存储,因此本质上对字段建立索引就能使数据以可预测的方式存储。在该字段上进行筛选时,查询将运行得更快,因为SQL Server知道从那个确切的位置开始查找。 可以为特定目的在字段上设置许多索引,但是如果要提高性能,我们通常会创建通用的非聚集索引。此外,如果要创建索引,就必须进行维护,插入、更新和删除会造成索引碎片。 因此,除非数据没有更新,否则就需要根据数据更改的频率来重建索引。理想情况下应该使用计划的存储过程来执行此操作,以便始终保持运行稳定。
创建索引的SQL语句非常简单。下面的语句将在Orders表的给定字段上创建一个名为 idx_orderdate的非聚集索引: 如果你身兼数职,或者公司没有数据库团队,那么你可能会负责数据库开发。这种情况下,你应该不同情况下使用哪种类型的数据库对象有很好的了解。简言之,数据库对象是可以使用创建脚本存储或访问数据的任何内容,最常见的例子就是表格,它是数据库的组成部分。这些显然是数据存储的必经之路。 但是,还有其他类型的对象以不同的方式访问和转换数据。使用最好的对象进行工作很重要。下面是使用案例中应用对象的基本规则(索引本质上是数据库对象,因为它们会影响数据的存储和访问方式): 存储过程:这是处理或转换数据的必经之路。如果需要在一天中的特定时间或以特定的节奏进行更新,则可以创建存储过程,然后按程序运行。 · 视图:视图本质上是一个存储的查询,可以从动态数据集中进行选择。如果数据需要刷新或可能转换,笔者常用视图替换缓存的表。实际上并没有存储任何更改,但可以加入计算所得的字段,当你需要动态的最新数据时,视图就是一个不错的选择。
了解了表、视图和存储过程之后,你将能够处理大多数数据库开发任务。 (编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |