PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#26 Re : pgAdmin4 » saturation iexplore.exe » 18/07/2019 10:47:58

rjuju a écrit :

Pourquoi ne pas utiliser un autre navigateur ?  Internet explorer est universellement reconnu pour être incroyablement mauvais.

Comme navigateur, j'utilise habituellement Firefox (mais il est boulimique en RAM) et  Chrome est trop bavard.....
Je vais installer firefox en attendant sur le serveur. Au besoin je rajouterai de la mémoire.

rjuju a écrit :

Vous pouvez trouver une liste d'outils compatible avec postgres sur https://wiki.postgresql.org/wiki/Commun … _GUI_Tools et https://wiki.postgresql.org/wiki/PostgreSQL_Clients.

Je cherchais plus un retour d’expérience. Il y a tellement de choix comme alternative à pgadmin.
Si j'ai une liste de 2 ou 3 remplaçants, je peux mieux comparer.

#27 pgAdmin4 » saturation iexplore.exe » 18/07/2019 09:19:56

oles67
Réponses : 4

Bonjour,

Config :
xeon E5-2680 avec 8Go de ram.
Win2K16
PGSQL 9.6

Actuellement, il devient impossible d'utiliser pgadmin avec 4 fenêtres d'édition de requêtes pour créer des fonctions.
Le process iexplore.exe dépasse 50% et lorsque je tape mon code j'ai l'impression de revenir au temps du minitel.

Si j'ouvre un 2 iexplore.exe, il est fluide tant que je n'ouvre pas plusieurs fenêtres d’éditions de requêtes. (+10%CPU par fenêtre vide)

Est-ce normal ?
D'après votre expérience,  y a t-il une alternative fiable et opensource à pgadmin en version desktop de préférence ?


Merci de vos lumières.

Cordialement.

#28 Re : Général » Format Export fichier XML » 17/07/2019 14:38:49

Je me répond en partie à moi même pour la partie concaténation des valeurs sur une ligne.
J'ai essayé avec CONCAT(), mais le nombre d'arguments est limité à 100 (50 champs + 50 délimiteurs) alors qu'il me faut 98 champs et 97 délimiteurs.
Je suis donc passé par : Champ1 || '';'' || Champ2 || '';'' || Champ3

COPY( select query_to_xml(
'select Nom, date, 
	Champ1 || '';'' ||
	Champ2 || '';'' ||
	Champ3
AS Concat
from 
	public.Temp_Table4', false , false, '')
        ) 
TO 'c:\temp\tempTestConcat.xml'  CSV QUOTE AS ' '

C'est pas parfait, mais actuellement j'arrive à ce qui suit et j'aimerai fusionner les <annee id="2018"> ensemble et idem pour 2019 et et n'avoir qu'un <Row>
Si vous avez une idée, je dormirai moins bête ce soir.


<Row>
    <annee id="2018">
        <Janvier> 0101_2018 ; 0201_2018 ; 0301_2018 </Janvier>
    </annee>
</Row>

<Row>
    <annee id="2018">
        <Fevrier> 0102_2018 ; 0202_2018 ; 0302_2018 </Fevrier>
    </annee>
</Row>

<Row>
    <annee id="2019">
        <Janvier> 0101_2019 ; 0201_2019 ; 0301_2019 </Janvier>
    </annee>
</Row>

<Row>
    <annee id="2019">
        <Fevrier> 0102_2019 ; 0202_2019 ; 0302_2019 </Fevrier>
    </annee>
</Row>

Rien qu'avec ça, je passe le fichier XML de 27Mo à 5,7Mo contre 5,2Mo pour le CSV.

#29 Général » Format Export fichier XML » 17/07/2019 09:02:10

oles67
Réponses : 4

Bonjour,

J'utilise Pgsql 9.6
Actuellement, les exports sont fait en CSV avec "COPY (SELECT......) TO file", mais j'aimerai les faire en XML.
Le fichier CSV fait 5Mo (Zip750Ko) , contre 27Mo pour le Xml (Zip5,5Mo)

Je sais que le XML est très bavard (chaque valeur a une balise ouverte et fermée). En temps normal, je le simplifie en structurant un format qui ressemble un peu à du CSV. Une balise contient toutes les valeurs d'une ligne de CSV avec comme séparateur ";". Ex :

<Data>
    <annee id="2018">
        <Janvier> 0001_2018 ; 0101_2018 ; 0301_2018 </Janvier>
        <Fevrier> 0002_2018 ; 0102_2018 ; 0302_2018 </Fevrier>
    </annee>
    <annee id="2019">
        <Janvier> 0001_2019 ; 0101_2019 ; 0301_2019 </Janvier>
        <Fevrier> 0002_2019 ; 0102_2019 ; 0302_2019 </Fevrier>
    </annee>
</Data>

Dans Excel, pour retrouver le format type tableau, j'édite la requête  :
Table.ReorderColumns(#"Type modifié2",{"Attribute:id", "Janvier.1", "Janvier.2", "Janvier.3", "Fevrier.1", "Fevrier.2", "Fevrier.3"})

    ActiveWorkbook.Queries.Add Name:="annee (3)", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Xml.Tables(File.Contents(""\\Network\C\Temp\textXML3.xml""))," & Chr(13) & "" & Chr(10) & "    Table0 = Source{0}[Table]," & Chr(13) & "" & Chr(10) & "    #""Type modifié"" = Table.TransformColumnTypes(Table0,{{""Janvier"", type text}, {""Fevrier"", type text}, {""Attribute:id"", Int64.Type}})," & Chr(13) & "" & Chr(10) & "    #""Fractionner la colonne par délimiteur"" = Table.SplitColumn(#""Type modifié"",""Janvier"",Splitter.Sp" & _
        "litTextByDelimiter("";""),{""Janvier.1"", ""Janvier.2"", ""Janvier.3""})," & Chr(13) & "" & Chr(10) & "    #""Type modifié1"" = Table.TransformColumnTypes(#""Fractionner la colonne par délimiteur"",{{""Janvier.1"", type text}, {""Janvier.2"", type text}, {""Janvier.3"", type text}})," & Chr(13) & "" & Chr(10) & "    #""Fractionner la colonne par délimiteur1"" = Table.SplitColumn(#""Type modifié1"",""Fevrier"",Splitter.Sp" & _
        "litTextByDelimiter("";""),{""Fevrier.1"", ""Fevrier.2"", ""Fevrier.3""})," & Chr(13) & "" & Chr(10) & "    #""Type modifié2"" = Table.TransformColumnTypes(#""Fractionner la colonne par délimiteur1"",{{""Fevrier.1"", type text}, {""Fevrier.2"", type text}, {""Fevrier.3"", type text}})," & Chr(13) & "" & Chr(10) & "    #""Colonnes triées"" = Table.ReorderColumns(#""Type modifié2"",{""Attribute:id"", ""Janvier.1"", ""Janvie" & _
        "r.2"", ""Janvier.3"", ""Fevrier.1"", ""Fevrier.2"", ""Fevrier.3""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Colonnes triées"""
    Sheets.Add After:=ActiveSheet
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""annee (3)""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [annee (3)]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = False
        .ListObject.DisplayName = "annee__3"
        .Refresh BackgroundQuery:=False
    End With

Par contre, pour ce qui concerne l'export d'une requête vers un fichier XML, je coince et j'ai besoin d'une piste ou d'un exemple existant pour créer ma structure du fichier XML comme dans mon exemple. La bdd est générée par un logiciel externe et je ne peut pas modifier sa structure (table, schema,...).
Par contre, je peux créer des function, tables (pour le schema, je ne sais pas)

Est-ce qu'il déjà existe un moyen avec postgre, ça m'évitera de réinventer la roue, ou bien est-il possible de le faire avec une fonction perso ?

Merci de votre aide.

Pied de page des forums

Propulsé par FluxBB