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 文本 空白 设置命名参数如何传递到模板
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,const5
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