[gelöst] Views exposed filter / Lange query build time
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 29.05.2014 - 16:22 Uhr in
Salüt zusammen
Folgendes Problem
Ich habe eine Block Views mit exposed Filtern. Ich habe ebenso ein Taxonomy Vokabular mit tausenden von Taxonomy Terms. Und die Nodes nach denen ich in der Views suche haben ein taxonomy reference field womit man die gewünschte Zuordnung machen kann. Soweit so gut. Wenn ich nun in der Views nach irgendeinem zugewiesenen Taxonomy-Term suche oder auch nach allen, geschieht folgendes:
Query build time: 13.58 ms
Query execute time: 0.69 ms
View render time: 2.62 ms
Und der query:
SELECT node.title AS node_title, node.nid AS nid, node.language AS node_language, node.created AS node_created, 'node' AS field_data_field_summary_node_entity_type
FROM
{node} node
INNER JOIN {field_data_field_initiative_location} field_data_field_initiative_location ON node.nid = field_data_field_initiative_location.entity_id AND (field_data_field_initiative_location.entity_type = 'node' AND field_data_field_initiative_location.deleted = '0')
INNER JOIN {taxonomy_index} taxonomy_index ON node.nid = taxonomy_index.nid
WHERE (( (node.status = '1') AND (node.type IN ('initiative')) AND (node.language IN ('en', 'und')) AND (field_data_field_initiative_location.field_initiative_location_tid = '37') AND (taxonomy_index.tid IN ('11995', '11997', '11996')) ))
ORDER BY node_created DESC
LIMIT 20 OFFSET
Das ist so in Ordnung. Bekomme immer etwa die gleichen Zeitergebnisse, egal wie ich diesen Filter konfiguriere. ABER sobald ich den Filter auf exposed (veröffentlicht) setze, sieht es folgendermassen aus:
Query build time: 4869.64 ms
Query execute time: 0.93 ms
View render time: 3.69 ms
Und der query:
SELECT node.title AS node_title, node.nid AS nid, node.language AS node_language, node.created AS node_created, 'node' AS field_data_field_summary_node_entity_type
FROM
{node} node
INNER JOIN {taxonomy_index} taxonomy_index ON node.nid = taxonomy_index.nid
WHERE (( (node.status = '1') AND (node.type IN ('initiative')) AND (node.language IN ('en', 'und')) AND (taxonomy_index.tid IN ('11995', '11997', '11996')) ))
ORDER BY node_created DESC
LIMIT 20 OFFSET 0
Meine Frage
Warum braucht die Views mit diesem Exposed Filter so viel länger? Im Bearbeitungsformular der Nodes wird dieses Taxonomy-Reference-Field ja ebenfalls gerendert und dort geschieht das Fix und ohne Probleme.
- Anmelden oder Registrieren um Kommentare zu schreiben
Bei der ersten View hast Du
am 31.05.2014 - 17:33 Uhr
Bei der ersten View hast Du ja noch folgende Einschränkung:
AND (field_data_field_initiative_location.field_initiative_location_tid = '37')
Ich nehme mal an, daß sich dadurch die Anzahl der Ergebnisse stark vermindert und der Select deshalb weniger lange braucht.
Salüt MontvisoDa hast du
am 31.05.2014 - 17:49 Uhr
Salüt Montviso
Da hast du recht, ABER bei der zweiten Views habe ich im Query ja noch nicht einmal einen Verweis auf dieses Vokabular. Kein Join nix... Das heisst es müsste sogar schneller sein. DOCH anscheinend braucht Views ein Weilchen bis es das kapiert und diesen Query bilden kann... Kann mir das nicht wirklich erklären.
Zitat: Das heisst es müsste
am 31.05.2014 - 18:19 Uhr
Das heisst es müsste sogar schneller sein.
Kommt ja drauf an, wieviel Ergebnisse jeweils zu erwarten sind, oder?
Also ich weiss bloss dass der
am 31.05.2014 - 18:30 Uhr
Also ich weiss bloss dass der zweite Query blitzschnell ist wenn ich ihn durch die Datenbank jage. Liefert genau 1 Ergebnis aus, mein ganzer Testinhalt. :) Irgendwie stört sich die View daran, den Filter exposed zu sehen.
Ich habe mal das Devel-Modul
am 01.06.2014 - 06:45 Uhr
Ich habe mal das Devel-Modul befragt, die Ergebnisse sind hier zu finden:
https://drupal.org/node/2276389#comment-8832753
Falls jemand weiss wie ich das umgehen kann, bitte melden.
Das Problem ist
am 01.06.2014 - 09:43 Uhr
Das Problem ist gefunden:
https://drupal.org/node/2276389
https://drupal.org/node/2277811
Hi, danke für das Posten der
am 01.06.2014 - 11:55 Uhr
Hi, danke für das Posten der Lösung.
Hast Du schon probiert, ob es mit der Views 3.7. schneller geht?
Jedenfalls weiß ich dann ja, was ich vorerst n i c h t mache. ;-)
Jawohl mit der Version 3.7
am 01.06.2014 - 12:03 Uhr
Jawohl mit der Version 3.7 geht alles fix wie gewohnt, keine Probleme. Ich hoffe aber dies wird entsprechend angepasst in der neuen Version, mit einem Patch zum Beispiel. Mir selbst fehlt momentan die Zeit dazu. Und die Version 3.8 behebt nebenbei einige Sicherheitsmängel und es wäre schon nicht schlecht wenn man da auf dem neuesten Stand wäre. Doch vorerst hat die Funktion Vorrang.
Ich hoffe aber dies wird
am 01.06.2014 - 12:12 Uhr
Ich hoffe aber dies wird entsprechend angepasst
Wird schon kommen...