Re: [TYPO3-german] typoscript db query performance issue

2016-12-18 Diskussionsfäden Alex B .

Lieber Dieter,

super, genau das war es. Auf die Lösung mit "REGISTER" war ich nicht gekommen. 
Ich konnte meine Funktion nun wie gerfordert umsetzen und auch die Ladezeiten sind nun 
moderat da ich nicht mehr alle News-Items, sondern nur noch eine wenige im query habe.

Besten Dank für die Hilfe :-)

Viele Grüße
Alex
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] typoscript db query performance issue

2016-12-17 Diskussionsfäden Dr. Dieter Porth

Hi Alex,

Ja, es war noch etwas früh heute morgen. 'where' hat doch ein stdWrap. 
Also kannst du mit Registern arbeiten.


lib.Machwas = COA

lib.machwas{

10 = LOAD_REGISTER

10 {

deinTitle.cObject < temp.newsTitle

deinTime.cObject = TEXT

deinTime.data = date:U

}

20 = CONTENT

20 {

..

where.stdWrap.dataWrap = (datetime >= '{REGISTER:deinTime}' AND deleted 
= '0' AND hidden = '0' AND title = '{REGISTER:deinTitle}')


..}

30 = RESTORE_REGISTER

So ungefähr sollte die Struktur aussehen.

Mit besten Grüßen

  Dieter

Am 17.12.2016 um 14:08 schrieb Alex B.:


Vielen Dank für die Hinweise/Hilfe.
Das Problem liegt leider nicht in der Syntax, diese ist ok, nur etwas 
veraltet - "andWhere" ist deprecated wie ich nun gesehen habe. Ich 
habe daher auf "where" umgestellt.


Die Performance-Probleme werden offenbar von der Anzahl der MySQL-Rows 
verursacht. Wenn ich "max" z.B. auf 10 stelle, ist die Anfrage wieder 
schnell. Allerdings befinden sich in dem record-storage mit der 
verwendeten pid (168) nur ca. 200 News-Items -- das sollte für einen 
normalen db-query doch eigentlich sehr wenig sein?


Mein Ziel ist es News-Items auszulesen deren Titel der selbe ist wie 
der Titel der aktuell geöffneten News. Bisher hatte ich alle News die 
einen anderen Titel haben später per jquery aus dem dom entfernt -- um 
die Datenbankabfrage nun zu verbessern, möchte ich nun den Titel des 
aktuell geöffneten News-Item per typoscript auslesen und in meine 
Datenbankabfrage (where) einbinden.

Das bekomme ich leider nicht hin. Hier mein aktueller Code:

# den titel des aktuell geoeffneten news-items auslesen
temp.newsTitle = RECORDS
temp.newsTitle {
 dontCheckPid = 1
 tables = tx_news_domain_model_news
 source.data = GP:tx_news_pi1|news
 source.intval = 1
 conf.tx_news_domain_model_news = TEXT
 conf.tx_news_domain_model_news {
   field = title
   # htmlSpecialChars = 1
 }
 wrap = |
}
# for testing, das gibt den titel der aktuell geoeffenten news korrekt 
aus

# page.800 < temp.newsTitle
# lib.dbquery, diese lib wird dann in ein powermail formular eingebunden
lib.dbquery = CONTENT
lib.dbquery {
 table = tx_news_domain_model_news
 select { pidInList = 168
   selectFields = title,datetime
   recursive = 1
   orderBy = datetime ASC
   where = (datetime >= '###newsdate###' AND deleted = '0' AND hidden 
= '0' AND title = '###newstitle###')

   markers {
 newsdate.data = date:U
 # newstitle.data < temp.newsTitle  ## does not work
 # newstitle < temp.newsTitle  ## does not work
 # newstitle.data = temp.newsTitle  ## does not work
 # newstitle = temp.newsTitle  ## does not work
   }
   # max = 20
 }
 renderObj = COA
 renderObj {
  10 = COA
  10 {
10 = TEXT
10.data = field:title
10.noTrimWrap = ||, |
20 = TEXT
20.data = field:datetime
20.strftime = %d.%m.%Y
30 = TEXT
30.value = [\n]
   }
 }
}
[end]

Vielen Dank für die Hilfe,
Alex
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] typoscript db query performance issue

2016-12-17 Diskussionsfäden Dr. Dieter Porth

Nachsatz.

Ich habe das andWhere in der Dokumentation überlesen. Ist für mich zu 
früh am Samstag. Sorry.


Aber die geschweifte Klammer erscheint mit in deinem Script merkwürdig. 
{} stehen in TypoScript für Array-Konstruktionen. Laut Doku hat andWhere 
den Typ SQL-where/stdWrap. Der Ausdruck wird vermutlich  nicht ausgewertet.


Dieter

Am 16.12.2016 um 23:01 schrieb Alex B.:

Liebes Forum,

ich habe ein Problem mit einer typoscript Datenbankabfrage. Die 
Abfrage soll tx_news items auslesen und für die Ausgabe in powermail 
vorbereiten. Das Script läuft fehlerfrei - allerdings erhalte ich wenn 
ich das typoscript einbinde eine längere Ladezeit von 7-9 Sekunden.


Hier mein ts db query:

lib.dbquery = CONTENT
lib.dbquery {
 table = tx_news_domain_model_news
 select { pidInList = 15
   orderBy = datetime ASC
   where = deleted = 0
   andWhere = hidden = 0
   andWhere {
 data = date:U
 wrap = datetime >=|
   }
 }
 renderObj = COA
 renderObj {
  10 = COA
  10 {
10 = TEXT
10.data = field:title
10.noTrimWrap = ||, |
20 = TEXT
20.data = field:datetime
20.strftime = %d.%m.%Y
30 = TEXT
30.value = [\n]
   }
 }
}

Kann jemand nachvollziehen weshalb sich der query so stark auf die 
Ladezeit auswirkt? (Hosting liegt bei Mittwald auf einem XL v-host).


Besten Dank für die Hilfe,
Alex
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Re: [TYPO3-german] typoscript db query performance issue

2016-12-17 Diskussionsfäden Dr. Dieter Porth

Lieber Alex,

ein Blick in die Documentation zeigt, dass das "select" kein "andWhere" 
kennen sollte. Wahrscheinlich werden alle Datensätze verarbeitet.


Hast du dir einfach mal dein Skript ausgeben lassen?

Dieter


Am 16.12.2016 um 23:01 schrieb Alex B.:

Liebes Forum,

ich habe ein Problem mit einer typoscript Datenbankabfrage. Die 
Abfrage soll tx_news items auslesen und für die Ausgabe in powermail 
vorbereiten. Das Script läuft fehlerfrei - allerdings erhalte ich wenn 
ich das typoscript einbinde eine längere Ladezeit von 7-9 Sekunden.


Hier mein ts db query:

lib.dbquery = CONTENT
lib.dbquery {
 table = tx_news_domain_model_news
 select { pidInList = 15
   orderBy = datetime ASC
   where = deleted = 0
   andWhere = hidden = 0
   andWhere {
 data = date:U
 wrap = datetime >=|
   }
 }
 renderObj = COA
 renderObj {
  10 = COA
  10 {
10 = TEXT
10.data = field:title
10.noTrimWrap = ||, |
20 = TEXT
20.data = field:datetime
20.strftime = %d.%m.%Y
30 = TEXT
30.value = [\n]
   }
 }
}

Kann jemand nachvollziehen weshalb sich der query so stark auf die 
Ladezeit auswirkt? (Hosting liegt bei Mittwald auf einem XL v-host).


Besten Dank für die Hilfe,
Alex
___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german


___
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german