|
|
Latest News |
Latest Threads |
|
|
55.080 Posts & 4.945 Themen in 78 Foren |
|
|
|
|
Forensuche |
|
Suchbegriff |
Benutzerauswahl |
Ergebnisse anzeigen |
|
|
Views (Artikel, News, Links, Downloads) 40 Beiträge in diesem Thema |
|
|
|
|
|
31.08.2018 - 07:30 Uhr |
|
|
|
Hat geklappt, danke euch wieder mal für die schnelle Hilfe
|
|
|
|
|
|
|
|
|
|
06.10.2018 - 11:15 Uhr |
|
|
|
Kann es sein, dass die Tabellen sich nach dem Monat nicht automatisch löschen? Mittlerweile ist "phpkit_content_statistic" nämlich schon 65MB groß und wenn die Startseite im ACP aufgerufen wird, dauert es ein wenig, bis sie geladen ist. Alle Werte nach 30 Tagen brauch man ja nicht mehr.
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DHH - 08.10.2018 - 10:04 Uhr |
|
|
|
|
|
|
|
|
|
|
09.10.2018 - 03:16 Uhr |
|
|
|
Man man man - was sind schon 65 MB .. Frag mal die großen Jungs ;p
Na gut, wollen wa mal nicht so sein (und davon ablenken das ich es irgendwie mit bedacht hatte (wenn auch diese Probleme so nicht gesehen hätte) .. ^^"").
Hier klicken zum aufklappen- pkinc/admin/main.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext # Config-Bereich zuenden
$CSTYPES['Today']['DEV_VAR_TimeStart'] ='TimeTodayA';
$CSTYPES['Today']['DEV_VAR_TimeEnd'] ='TimeTodayZ'; | |
Und füge darüber das ein:
| PHP-Quelltext $CSTYPES['Reset']['Puffer'] =1;
$CSTYPES['Reset']['Type'] ='Month';
# Möglich sind: Day, Week, Month, Year | |
- Suche weiter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | | PHP-Quelltext # _ get TimeStamp of:
# _ Today
$TimeTodayA =StrToTime('today');
$TimeTodayZ =StrToTime('tomorrow')-1;
# _ Yesterday
$TimeYesterdayA =StrToTime('yesterday');
$TimeYesterdayZ =StrToTime('today')-1;
# _ this Week
$TimeWeekA =StrToTime('monday this week');
$TimeWeekZ =StrToTime('sunday this week');
# _ this Month
$TimeMonthA =StrToTime('midnight first day of this month');
$TimeMonthZ =StrToTime('midnight first day of next month')-1;
# _ get TimeStamp of: | |
Und füge darunter das ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | | PHP-Quelltext # _ Reset / Delete Datas out Database:
if (IsSet($CSTYPES['Reset']['Puffer']) && IsSet($CSTYPES['Reset']['Type']))
{
$ResetPuffer
=
Intval($CSTYPES['Reset']['Puffer']) > 0
? Intval($CSTYPES['Reset']['Puffer'])
: 1
;
$ResetType
=
Trim ($CSTYPES['Reset']['Type'])!=''
? Trim ($CSTYPES['Reset']['Type'])
: 'Month'
;
$ResetTypeList
=
Array(
'Day'
=>
MKTime(
0,
0,
0,
Date('m', pkTIME),
Date('d', pkTIME) - $ResetPuffer,
Date('Y', pkTIME)
),
'Week'
=>
StrToTime('Midnight This Week') - (60*60*24*7*$ResetPuffer)
,
'Month'
=>
MKTime(
0,
0,
0,
Date('m', pkTIME) - $ResetPuffer,
1,
Date('Y', pkTIME)
),
'Year'
=>
MKTime(
0,
0,
0,
1,
1,
Date('Y', pkTIME) - $ResetPuffer
),
);
$ResetTIME
=
IsSet($ResetTypeList[$ResetType])
? $ResetTypeList[$ResetType]
: $ResetTypeList['Month']
;
$IsStatisticDatas=$SQL->Fetch_Assoc($SQL->Query("SELECT content_statistic_id FROM ".pkSQLPREFIX."_content_statistic WHERE content_statistic_time < '".$SQL->i($ResetTIME)."'"));
If ($IsStatisticDatas!==TRUE)
{
$SQL->query("DELETE FROM ".pkSQLPREFIX."_content_statistic WHERE content_statistic_time < '".$SQL->i($ResetTIME)."'");
}
UnSet($ResetPuffer);
UnSet($ResetType);
UnSet($ResetTypeList);
UnSet($ResetTIME);
UnSet($IsStatisticDatas);
}
# _ Reset / Delete Datas out Database: | | |
Erklärungen:
In der Änderungen von oben ( Datei: pkinc/admin/main.php ) sind nun 2 weitere Einstellungsmöglichkeiten vorhanden:
| PHP-Quelltext $CSTYPES['Reset']['Puffer'] =1; | |
Die 1 ist die Anzahl an Puffer in Tagen/Wochen/Monaten/Jahren an Datensätzen die noch behalten werden sollen. Bspw. heute ist der 09.10.2018. Lassen wir die 1 drin stehen, wird 1 Tag/Woche/Monat/Jahr ab Heute nicht gelöscht - alles davor (z.B. bei 1 Tag = 07.10.2018) wird dann gelöscht.
| PHP-Quelltext $CSTYPES['Reset']['Type'] ='Month';
# Möglich sind: Day, Week, Month, Year | |
Hier kann der Zeitraum in Form von Tagen/Wochen/Monaten/Jahren eingestellt werden.
Möglich sind folgende Werte:
| Quellcode Day für Tag
Week für Woche
Month für Monat
Year für Jahr | |
In der obigen Einstellung ist also ein Puffer-Zeitraum von 1 Monat eingestellt. Alles was vor dem 01.08.2018 an Datensätzen gefunden wird - wird gelöscht.
Sollte noch was sein ..
..
..
*duck und weg*
|
|
|
|
|
|
|
|
|
|
09.10.2018 - 10:03 Uhr |
|
|
|
Super, danke dir
|
|
|
|
|
|
|
|
|
|
25.10.2018 - 09:12 Uhr |
|
|
|
Hmm, irgendwie scheint ein Problem vorzulegen und das einzige was sich ja geändert hatte, war diese Bearbeitung. Aus irgendeinem Grund kommt es immer häufiger vor, dass meine Seite beim laden nicht erreichbar ist (wenn ich sie neu lade, ist sie sofort verfügbar). Normal hatte ich 6GB Arbeitsspeicher, was ohne Probleme ausgereicht hatte. Dann kamen die Fehlermeldungen und ich habe auf:
RAM
9 GB
Prozesse
900/min
Memory Limit
640 MB
erhört.
Doch auch das scheint nicht auszureichen und jetzt soll ich auf 15GB erhöhen, was totaler Schwachsinn wäre.
Könntest du vielleicht noch mal über deinen Code fliegen ob vielleicht irgendwas dort drin ist, was die Fehler zulässt?
|
|
|
|
|
|
|
|
|
|
26.10.2018 - 02:11 Uhr |
|
|
|
Nabend,
das klingt aber komisch. Auf der Startseite ist nirgendwo eine News oder so direkt eingebunden. Demnach würde auch kein Eintrag in der DB stattfinden. Und jede Abfrage der DB selbst findet im AdminCenter statt
Auch hat bei mir die Seite direkt geladen - ohne lange Ladezeit
--
Folgendes könntest ja mal probieren:
- AdminCenter > Sonstiges > Datenbank > Datenbank pflegen
.. und hier alle 3 Optionen anklicken:
Überprüfen
Reparieren
Optimieren
- Oder die Funktion selber deaktivieren
pkinc/func/default.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext # ContentStatistic - Start
function ContentStatisticUpdate($ContentID=NULL, $ContentPage=NULL)
{
$ContentID
=
IsSet ($ContentID)
&& Intval($ContentID) > 0
? Intval($ContentID)
: NULL
; | |
Und mache daraus das:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | | PHP-Quelltext # ContentStatistic - Start
function ContentStatisticUpdate($ContentID=NULL, $ContentPage=NULL)
{
$OPTADMIN =1;
# 0 = Funktion normal laufen lassen
# 1 = Funktion deaktivieren
# 2 = wie 1, und Tabelle "_content_statistic" leeren / reseten / Alle Daten löschen
If (Intval($OPTADMIN)===1)
{
Return;
}
If (Intval($OPTADMIN)===2)
{
Global
$SQL
;
$SQLCommand ="TRUNCATE TABLE ".pkSQLPREFIX."_content_statistic";
$SQL->Query($SQLCommand);
Return;
}
$ContentID
=
IsSet ($ContentID)
&& Intval($ContentID) > 0
? Intval($ContentID)
: NULL
; | |
Mit der Änderung sind 2 neue Optionen enthalten:
| PHP-Quelltext $OPTADMIN =1;
# 0 = Funktion normal laufen lassen
# 1 = Funktion deaktivieren
# 2 = wie 1, und Tabelle "_content_statistic" leeren / reseten / Alle Daten löschen | |
In der Änderung ist Option 1 eingestellt - Funktion deaktivieren. Vielleicht liegts ja wirklich daran
Sollte es wirklich daran liegen hilft es vll. die ganze Tabelle _content_statistic mal zu leeren. Hierfür einfach die Option 2 einstellen ( und damit das nicht dauernd gemacht wird [ ist ja, denk ich mal, auch nicht so gut ^^"" ] wieder auf Option 1 umstellen ).
|
|
|
|
|
|
|
|
|
|
29.10.2018 - 09:18 Uhr |
|
|
|
Edit: Das Problem hat sich erledigt, trotzdem Danke dir
|
|
|
|
|
|
|
|
|
|
09.12.2018 - 13:08 Uhr |
|
|
|
Hmm, irgendwie geht es schon wieder los. Ich möchte aber ungern auf diese Statistik verzichten
Daher wäre es doch vielleicht besser, wenn sie sich nur alle 15 oder 30 Minuten aktualisiert, denke das sollte das Problem doch lösen, oder?
|
|
|
|
|
|
|
|
|
|
11.12.2018 - 03:24 Uhr |
|
|
|
Nabend,
was meinst du mit alle 15-30 Minuten aktualisieren? Die Datenbank selbst wird ja nur beim Aufruf eines Artikels, einer News, Downloads, Link oder Video um einen Datensatz in der *_content_statistic erweitert. Die Daten selbst werden dann ja nur im Adminbereich auf der Startseite abgefragt.
Das die Datenbank bzw. der Server "Probleme" mit den RAM hat könnte, schätz ich mal, damit zusammenhängen das die o.g. Inhalte zu oft u. o. zu schnell aufgerufen werden und entsprechend der Versuch die Daten in die Datenbank zu speichern an die Grenzen kommt.
Der Abruf der Daten im AdminCenter selbst kann ja nicht das Problem sein - da werden ja wohl kaum tausende Leute zugreifen .. oder?^^""
Also .. um eine effektive Lösung zu basteln wäre halt erstmal wichtig was genau die Probleme verursacht ( also außer das die Statistik geführt wird ^^" ).
Wieviele Datensätz gibt es denn so in etwa pro Tag / Woche / Monat?
Wieviele Aufrufe finden pro Minute / Stunde / Tag / Woche / Monat so statt?
Kann man die Aufrufe nach Bots / echten Usern unterscheiden?
Kannst du obiges ( ohne weiteres ) rausfinden? Ich glaub die meisten Datenbank-Systeme haben eine entsprechende Funktion um solche Sachen rauszufinden
Ansonsten müsste man die Speicherung der Daten in die Tabelle deaktivieren und nen kleines Script basteln das die vorhandenen Daten kurz auswertet ( Aufrufe pro Minute / Stunde / Tag / etc. ).
|
|
|
|
|
|
|
|
|
|
11.12.2018 - 07:01 Uhr |
|
|
|
Hab dir eine PN geschickt
|
|
|
|
|
|
|
|
Ähnliche Themen |
|
|
|
|
|
|
|
|