【发布时间】:2013-08-08 16:41:11
【问题描述】:
我的数据库架构:
table : Terminology (ID (PK), Name, Comments)
table : Content (ID (PK), TerminologyID (FK), Data, LangaugeID)
1 - 术语和内容之间的许多关系。一个术语可以根据不同的语言 ID 包含任意数量的内容。
术语和目录表可能有数百万条记录。
现在,即使我使用 WCF 数据服务从客户端获取了数百条记录(分页),但在 5-6 次尝试后,我得到了超时异常。
_DataService.Terminologies.Expand("Contents").Skip(index1).Take(count).ToList();
如果我不展开我的内容,查询工作正常 :),但我不会有内容数据。 处理这种情况的最佳方法是什么。
选项...
- 如果我在服务器端使用 Include(我的意思是,编写自定义 webget 方法)而不是在客户端使用 Exapnd,是否有任何性能改进。
- 创建数据库视图并通过客户端访问它。
- 创建存储过程,我可以在其中传递我的首选 LanguageID 并从客户端调用它。
【问题讨论】:
-
与任何性能问题一样 - 测量它。看看问题出在哪里。是客户端慢还是服务器慢。如果它在服务器上 - 在哪里?它针对数据库运行什么 SQL,查询计划是什么?查询可能由于某种原因没有使用索引等。
标签: performance wcf-data-services