Sai*_*udo 4 sql-server-2005 sql-server view materialized-view
我有一个包含 varchar 类型字段中的 XML 数据的表。该字段用于存储来自各种不同 XML 模式的数据,其中一些通过存储在另一个表中的记录相关联。
我最近创建了一些解析 XML 的视图,并且在某些情况下创建了一些值的枢轴。这些视图为我的报告提供了极好的数据,但对性能造成了严重影响。我想知道是否可以通过索引提高性能。
下面是一个视图的例子:
create view StudentHours as
select
x.TableRecordId as Id
, x.RecordXml.value('(/TableRecord/LOGDate)[1]', 'DateTime') as LogDate
, x.RecordXml.value('(/TableRecord/LOGHours)[1]', 'float') as Hours
, x.RecordXml.value('(/TableRecord/LOGApproved)[1]', 'varchar(10)') as Approved
, y.PKTableRecordId as CourseId
from
(select TableRecordId, Cast([Schema] as Xml) as RecordXml
from TableRecords where TableSchemaId = 1857) as x
join TableRecordRelations as y on x.TableRecordId = y.FKTableRecordId
Run Code Online (Sandbox Code Playgroud)
然后,我将在其他执行聚合等操作的视图中使用此视图。
名为 TableRecords 的表在其唯一 id TableRecordId 上有一个索引,TableRecordRelations 在其重要字段上也有索引。
添加一两个索引是否有助于此视图的性能?是否需要更多数据来确定这一点?
我相信转换到 XML 正在扼杀你的性能,Paul White计算标量、表达式和执行计划性能描述了正在发生的事情
到 XML 的转换推迟到您实际使用 XML 列的位置,因此在您的查询中,对于返回的每一行,转换发生 3 次。
| 归档时间: |
|
| 查看次数: |
917 次 |
| 最近记录: |