Help:调试格式

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

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

参数

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

参数 类型 默认 说明
sep 文本 空白 取值分隔符
template 文本 空白 输出显示模板的名称
template arguments 文本 空白 <smw-paramdesc-template-arguments>
named args 布尔值 no 请指定传递给该模板的变量
userparam 文本 空白 使用模板时,向模板调用所传递的取值
introtemplate 文本 空白 用于在查询结果前显示内容的模板的名称
outrotemplate 文本 空白 用于在查询结果后显示内容的模板的名称
import-annotation 布尔值 no 额外的带注释数据在解析主题期间都会被复制

示例

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

该查询将产生下列输出:

SQLStore debug output
ASK Query
[[Category:City]] [[Located in::Germany]]
SQL Query
SELECT DISTINCT
  t0.smw_id AS id,
  t0.smw_title AS t,
  t0.smw_namespace AS ns,
  t0.smw_iw AS iw,
  t0.smw_subobject AS so,
  t0.smw_sortkey AS sortkey, t0.smw_sortkey
FROM
  `smw_object_ids` AS t0
INNER JOIN
  `smw_fpt_inst` AS t2 ON t0.smw_id=t2.s_id
INNER JOIN
  `t3` AS t3 ON t2.o_id=t3.id
INNER JOIN
  `smw_di_wikipage` AS t4 ON t2.s_id=t4.s_id
INNER JOIN
  `t5` AS t5 ON t4.p_id=t5.id
WHERE
  (
   (t4.o_id='779')
  )
  AND t0.smw_iw!=':smw'
  AND t0.smw_iw!=':smw-delete'
  AND t0.smw_iw!=':smw-redi'
ORDER BY
  t0.smw_sortkey ASC
LIMIT
  55
OFFSET
  0
SQL Explain
IDselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1SIMPLEt5ALLPRIMARY2Using temporary; Using filesort
1SIMPLEt4refs_id,p_id,o_idp_id9DB0231020151216.t5.id,const4
1SIMPLEt0eq_refPRIMARY,smw_id,smw_iwPRIMARY4DB0231020151216.t4.s_id1Using where
1SIMPLEt2refs_id,o_ids_id4DB0231020151216.t4.s_id2Using where; Distinct
1SIMPLEt3eq_refPRIMARYPRIMARY4DB0231020151216.t2.o_id1Distinct
Auxilliary Tables
  • Temporary table t3
      Recursively computed hierarchy for element(s) ('490').
  • Temporary table t5
      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版到最新版本的所有版本。
      其他语言: deenfr

Help:Debug format zh-hans 0.7