<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.blaxeen.com/index.php?action=history&amp;feed=atom&amp;title=Postgresql_slow_queries</id>
	<title>Postgresql slow queries - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blaxeen.com/index.php?action=history&amp;feed=atom&amp;title=Postgresql_slow_queries"/>
	<link rel="alternate" type="text/html" href="https://wiki.blaxeen.com/index.php?title=Postgresql_slow_queries&amp;action=history"/>
	<updated>2026-04-18T12:21:10Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.blaxeen.com/index.php?title=Postgresql_slow_queries&amp;diff=4326&amp;oldid=prev</id>
		<title>127.0.0.1 : Page créée avec « Ce script va parser le fichier de log de slow queries, puis l exporter en csv suivant des critères  &lt;pre&gt; #!/bin/bash  date=&quot;$(date &#039;+%Y%m%d&#039;)&quot; sortie=&quot;/opt/agarik/script... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.blaxeen.com/index.php?title=Postgresql_slow_queries&amp;diff=4326&amp;oldid=prev"/>
		<updated>2020-01-14T14:18:17Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « Ce script va parser le fichier de log de slow queries, puis l exporter en csv suivant des critères  &amp;lt;pre&amp;gt; #!/bin/bash  date=&amp;quot;$(date &amp;#039;+%Y%m%d&amp;#039;)&amp;quot; sortie=&amp;quot;/opt/agarik/script... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ce script va parser le fichier de log de slow queries, puis l exporter en csv suivant des critères&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
date=&amp;quot;$(date &amp;#039;+%Y%m%d&amp;#039;)&amp;quot;&lt;br /&gt;
sortie=&amp;quot;/opt/agarik/scripts/slow_queries/slow_queries_${date}.csv&amp;quot;&lt;br /&gt;
rep_logs=&amp;#039;/opt/applis/postgresql/data/pg_log&amp;#039;&lt;br /&gt;
nb_jours=&amp;#039;10&amp;#039; # X derniers jours a analyser&lt;br /&gt;
duree_min=&amp;#039;60&amp;#039; #duree minnimal d&amp;#039;une requete a loguer en secondes&lt;br /&gt;
heure_min=&amp;#039;7&amp;#039;&lt;br /&gt;
heure_max=&amp;#039;20&amp;#039;&lt;br /&gt;
jds_min=&amp;#039;1&amp;#039; # jour de la semaine minimum (1=lundi)&lt;br /&gt;
jds_max=&amp;#039;5&amp;#039; # jour de la semaine maximum (1=lundi)&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;${rep_logs}&amp;quot;&lt;br /&gt;
echo &amp;#039;duree;date;heure;ip;utilisateur;bdd;requete&amp;#039; &amp;gt; &amp;quot;${sortie}&amp;quot;&lt;br /&gt;
ls -t postgresql-*.log | head &amp;quot;-${nb_jours}&amp;quot; | while read fichier; do&lt;br /&gt;
        date=&amp;quot;$(date -d&amp;quot;$(head -1 &amp;quot;${fichier}&amp;quot; | awk &amp;#039;{print $1}&amp;#039;)&amp;quot; &amp;#039;+%u&amp;#039;)&amp;quot;&lt;br /&gt;
        if [ &amp;quot;${date}&amp;quot; -ge &amp;quot;${jds_min}&amp;quot; -a &amp;quot;${date}&amp;quot; -le &amp;quot;${jds_max}&amp;quot; ]; then&lt;br /&gt;
                grep -E &amp;#039;LOG:  duration: [0-9]+\..*ms  execute&amp;#039; &amp;quot;${fichier}&amp;quot; | \&lt;br /&gt;
                sed -r &amp;#039;s/^([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9]) CET \[[0-9]*\]: \[[-0-9]*\] user=([^ ]*),db=([^ ]*),app=[^,]*,client=([^ ]*) LOG:[[:space:]]+duration:[[:space:]]+([\.0-9]*) ms[[:space:]]+execute[[:space:]]+[^ ]+[[:space:]]+(.*)/\6;\1;\2;\5;\3;\4;\7/g&amp;#039; | \&lt;br /&gt;
                grep -v &amp;#039;; COMMIT$&amp;#039; | awk -F&amp;#039;;&amp;#039; &amp;#039;BEGIN {OFS = FS}$1 /= 1000&amp;#039; | awk -F&amp;#039;;&amp;#039; &amp;#039;BEGIN {OFS = FS}$1&amp;gt;&amp;#039;&amp;quot;${duree_min}&amp;quot; | awk -F&amp;#039;;&amp;#039; &amp;#039;BEGIN {OFS = FS}split($3,c,&amp;quot;:&amp;quot;) &amp;amp;&amp;amp; c[1]&amp;gt;=&amp;#039;&amp;quot;${heure_min}&amp;quot;&amp;#039; &amp;amp;&amp;amp; c[1]&amp;lt;&amp;#039;&amp;quot;${heure_max}&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
done | sort -nr &amp;gt;&amp;gt; &amp;quot;${sortie}&amp;quot;&lt;br /&gt;
rm -f &amp;quot;${sortie}.gz&amp;quot;&lt;br /&gt;
gzip -9 &amp;quot;${sortie}&amp;quot;&lt;br /&gt;
echo &amp;quot;Liste des requetes de plus de ${duree_min} ms des ${nb_jours} derniers jours.&amp;quot; | sendmail -t vincent.quenel@agarik.com -m &amp;quot;Rapport slow queries ${date}&amp;quot; -a &amp;quot;${sortie}.gz&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Script]]&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>
	</entry>
</feed>