PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alte gebuchte Werbung



Zockervogel
21.02.2013, 12:42
Hallo,

ich habe gerade festgestellt, dass in der Tabelle "gebuchte Werbung" bei mir 26.775 Einträge sind. Allerdings habe ich nur ca. 6000 Kampagnen die aktiv sind. Ich nutze das STG_Interface.
Bei Status steht bei einigen 0 oder 1 oder 2.

Jetzt bin ich überrascht. Ich dachte, die alten Kampagnen werden automatisch aus der Datenbank entfernt.

Hat einer eine Idee warum diese (nur bei mir ?) nicht gelöscht werden und was ich hier machen kann ?

Lokutos
21.02.2013, 14:03
hast du alte IF gelöscht?
STG IF haben die macke das sie wenn der sponsor nicht erreichbar ist die kampagnen nicht löschen.

du kannst einerseits die kampagnen löschen wo der status nicht auf 1 steht da diese nicht aktive sind. (bei status 2 bin ich mir gerade nicht sicher was der ist. )
Du könntest auch wenn deine seite das nächste mal in den wartungsmodus geht einfach mal die tabelle leeren (insofern du keine direkt gebuchten userkampagnen hast...)
ansonnsten diese halt ausklammern... ist da wo bei sponsor eine ID steht.

Zockervogel
21.02.2013, 15:54
2 steht z.B. bei Busterzaster... also vermutlich dann bei denen, die nicht erreichbar sind.

Habe aber gesehen, dass ich bei einigen Sponsoren Kampagnen mit 0 und 1 drinnen habe... also auch existierende Sponsoren mit 0

komisch komisch

Masterphil
22.02.2013, 00:13
Am besten, ab und an, bereinigt man manuel, indem man die ganze Tabelle leert.

Dann darf aber keine Userwerbung dabei sein.

MfG

Zockervogel
31.03.2013, 15:20
nun, ich hatte seinerzeit die Tabelle mal geleert.

Heute habe ich schon wieder fast 30.000 Einträge. Die meisten davon mit "0" also Status.

Sollten diese denn nicht automatisch gelöscht werden ?
Leider passiert das bei mir nicht. Ich nutze nach wie vor das STG-Interface der verschiedenen Sponsoren.

Hat jemand ein paar Codezeile, die ich um 0 Uhr laufen lassen kann um diese dann einfach aus der Datenbank zu löschen ?

Lokutos
31.03.2013, 19:14
Führ mal folgenden code aus:
so sieht man welcher sponsor in welcher werbeart wie viel status 0 kampagnen hat:


SELECT COUNT(uid) AS `anzahl` ,`werbeart`, `sponsor` FROM `vms_gebuchte_werbung` WHERE `status` = '0' GROUP BY `sponsor`, `werbeart`

Weil ich hab na über einem jahr in meiner DB nicht mal 100 stück drin.

Zockervogel
31.03.2013, 23:43
Bei meiner kleineren Seite sind es bei zwei Sponsoren ca. 3500 Kampagnen.

Lokutos
01.04.2013, 00:05
du schreibst ja 30k kampagnen die meisten mit 0 als status also gehe ich mal davon aus, mindestens 15k

und nun währe es interesannt zu wissen wie sich diese 15k aufteilen.

Zockervogel
01.04.2013, 00:09
Es waren über 28k Kampagnen in der Datenbank bei der gebuchten Werbung drinnen.
Ich habe die Tabelle geleert.

Jetzt sind um die 7650 Kampagnen drinnen die aktiv sind

Lokutos
01.04.2013, 00:27
nagut dann kann man jetzt nicht mehr sagen woher das Problem kam...

Zockervogel
01.04.2013, 00:30
im Moment sind schon wieder über 100 Kampagnen mit "Null" drinnen.

egal woher das kommt.
Kann ich nicht einen Cron laufen lassen, der mir Nachts alle "Nuller" einfach löscht ?

Leider bin ich nicht fähig mir sowas selbst zu schreiben.
Auch wenn das vermutlich nur eine Zeile ist :-(

jpwfour
01.04.2013, 15:17
Manchmal fehlt bei den stg IFs am Ende vom Cron folgendes:


if($interface['verhalten'] >= '2'){
db_query ("DELETE FROM ".$db_prefix."_gebuchte_werbung WHERE sponsor = 'SPONSORNAME' and status = '0'");
}Mit dem SQL Befehl von Lokutos kannst du herausfinden, welche Crons betroffen sind, und entsprechend den Code hinzufügen (SPONSORNAME ersetzen!).

EDIT/Nachtrag: viel schlimmer sind die Kampagnen auf der Blacklist (status=2), die werden von den Crons nicht aktualisiert, daher hat man auch kaum Anhaltspunkte, wann man die löschen kann :frusty:


SELECT COUNT(*), STATUS FROM `vms_gebuchte_werbung` GROUP BY STATUS
COUNT( * ) STATUS
6296 1
14612 2
64 4

Zockervogel
02.04.2013, 00:10
wow, das sind mächtige Zeilen !
Vielen Dank, werde das gleich mal testen.

COUNT(*) STATUS
22207 0
4185 1
1 2

Werde mir mal alle Crons genau anschauen...

Lokutos
02.04.2013, 07:07
wow, das sind mächtige Zeilen !
Vielen Dank, werde das gleich mal testen.

COUNT(*) STATUS
22207 0
4185 1
1 2

Werde mir mal alle Crons genau anschauen...

SELECT COUNT(uid) AS `anzahl` ,`werbeart`, `sponsor` FROM `vms_gebuchte_werbung` WHERE `status` = '0' GROUP BY `sponsor`, `werbeart`
damit würdest du sehen bei welchem sponsor...

Zockervogel
02.04.2013, 11:37
Guten Morgen Leute,

ich habe heute Nacht bereits alles gefixt !

Ich habe mir (aus Post #6) angeschaut welche Sponsoren das betraf.
Weiterhin habe ich mir alle Crons angeschaut. Einige hatten, wie in Post #12 geschrieben, diese Löschfunktion nicht drinnen.

Diesen Code in der vorletzten Zeile habe ich bei allen Crons nun eingefügt.

Nachdem alle Crons ausgeführt waren standen nur noch zwei Sponsoren drinnen, die ich nicht mehr verwende. Diese habe ich dann per "Delete" direkt gelöscht.

Vielen Dank für eure Hilfe !!