Я прошел через этот link, который использует EXPLAIN()
, чтобы показать нам SQL-запрос, который Virtuoso генерирует (использует внутренне) для входного запроса SPARQL. Я попробовал это на своей версии Virtuoso 7.x и обнаружил, что получаю отличный результат. Я не могу полностью понять выход. Можно ли объяснить, что означает этот вывод из iSQL и как я буду интерпретировать SQL-запрос из этого?Virtuoso SQL-запрос запроса SPARQL в iSQL
Запрос SPARQL является
SPARQL SELECT DISTINCT ?s FROM <http://dbpedia.org> WHERE {
?s a <http://dbpedia.org/ontology/Cricketer> .
?s <http://dbpedia.org/property/testdebutyear> ?o .
};
Выход я получаю
{
Subquery 27
{
RDF_QUAD 3.2e+03 rows(s_1_2_t1.S)
inlined P = #/testdebutyear G = #/dbpedia.org
RDF_QUAD unq 0.8 rows (s_1_2_t0.S)
inlined P = ##type , S = s_1_2_t1.S , O = #/Cricketer , G = #/dbpedia.org
Distinct (s_1_2_t0.S)
After code:
0: s := := artm s_1_2_t0.S
4: BReturn 0
Subquery Select(s)
}
After code:
0: s := Call __ro2sq (s)
5: BReturn 0
Select (s)
}
20 Rows. -- 2 msec.
Как найти запрос SQL в этом случае? Есть ли какая-то команда или ссылка, которую я пропускаю?
Это «особенность» не как стандарт EXPLAIN, но больше для разработки и отладки, то есть он на самом деле не показывают планы выполнения или тому подобное. – AKSW
Я тоже попробовал EXPLAIN, я просто пытался понять таблицы SPOG, которые есть Virtuoso, и схемы индексирования. Попытка работать, если понимание SQL-запроса помогает. Так что смотрел, как Virtuoso получает правильные смещения, чтобы выбирать экземпляры понятий. – N00bsie