Help:调试格式

From semantic-mediawiki.org
Jump to: navigation, search
调试格式
用于分析查询应答过程之中的问题的调试信息
进一步的信息
提供方: Semantic MediaWiki
最低版本: 0.7
最高版本: 依然支持
要求:
格式名称: debug
作者: Markus Krötzsch
类别: misc
目录

调试格式debug用于获取关于Semantic MediaWiki如何处理某个查询的背景信息。 这些信息有助于理解某个查询为何可能会返回意外的结果,对开发人员修复查询应答过程中的缺陷至关重要。

参数

调试格式并没有特有的嵌入式查询参数。

参数 类型 默认 说明
sep 文本 , 取值分隔符
template 文本 空白 输出显示模板的名称
named args 布尔值 no 请指定传递给该模板的变量
userparam 文本 空白 使用模板时,向模板调用所传递的取值
introtemplate 文本 空白 用于在查询结果前显示内容的模板的名称
outrotemplate 文本 空白 用于在查询结果后显示内容的模板的名称
import-annotation 布尔值 no <smw-paramdesc-import-annotation>

示例

{{#ask: [[Category:City]] [[located in::Germany]] 
| ?population = 人口数量
| ?area#km² = 面积(km²)
| format=debug
}}

该查询将产生下列输出:

Debug Output by SQLStore

Ask query

[[Category:City]] [[Located in::Germany]]

SQL Query

SELECT DISTINCT
  t6.smw_id AS id,t6.smw_title AS t,t6.smw_namespace AS ns,t6.smw_iw AS iw,t6.smw_subobject AS so,t6.smw_sortkey AS sortkey
FROM
  `smw_object_ids` AS t6
INNER JOIN
  `smw_fpt_inst` AS t1 ON t6.smw_id=t1.s_id
INNER JOIN
  `t2` AS t2 ON t1.o_id=t2.id
INNER JOIN
  `smw_di_wikipage` AS t3 ON t1.s_id=t3.s_id
INNER JOIN
  `t4` AS t4 ON t3.p_id=t4.id
WHERE
  ((t3.o_id='779')) AND t6.smw_iw!=':smw' AND t6.smw_iw!=':smw-delete' AND t6.smw_iw!=':smw-redi'
ORDER BY
  t6.smw_sortkey ASC
LIMIT
  55
OFFSET
  0

SQL Explain

IDselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1SIMPLEt4ALLPRIMARY2Using temporary; Using filesort
1SIMPLEt3refs_id,p_id,o_idp_id9DB0231020151216.t4.id,const2
1SIMPLEt1refs_id,o_ids_id4DB0231020151216.t3.s_id1Using where
1SIMPLEt2eq_refPRIMARYPRIMARY4DB0231020151216.t1.o_id1
1SIMPLEt6eq_refPRIMARY,smw_id,smw_iwPRIMARY4DB0231020151216.t3.s_id1Using where

Auxilliary Tables Used

  • Temporary table t2
      Recursively computed hierarchy for element(s) ('490').
  • Temporary table t4
      Recursively computed hierarchy for element(s) ('86').

Query Metrics

Query-Size:3
Query-Depth:1

Errors and Warnings

None

如何读取调试输出

调试输出当中含有一些仅仅对开发人员有用的信息,但其同时对维基站点编者调试查询来说,也会提供一些具有指导意义的信息。

可读性较强的部分显示在顶部。这通常是SMW所理解的那个维基查询的某个版本。 所显示的这个查询可能会有别于用户当时的输入。 这可能是因为SMW只是在表达某些查询时采用了不同的方式(不同的编写风格),但其中同时也可能显示出该查询之中某些为SMW所不理解的或者理解错误的部分。

同时,还会显示一些关于query size(查询规模)和query depth(查询深度)的信息,以及所遇到的错误消息。 规模和深度乃是SMW用来限制查询复杂程度的内部参数。 维基网站管理员可以将查询限制到某个最大的查询规模深度 (如果存在问题,则会将其显示为一个错误),因而这种输出可能有助于理解在处理某些查询时的规模和深度如何。

调试报告的其余内容则通常与SMW所执行的,那些用来应答当前查询的内部存储功能有关。 这部分也取决于SMW的具体存储实现和版本,而且通常只有开发人员才是可能使用这些信息的人员。

评注

调试输出的细节取决于所采用的SMW的版本以及存储引擎。这些信息应当包含在调试报告之中。



本文档页面适用于SMW从0.7版到最新版本的所有版本。
      其他语言: deen

Help:Debug format zh-hans 0.7