Free Trial

Forum

Trouvez des réponses, posez des questions, et partagez votre expertise d’Alteryx.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
RÉSOLU

Optimiser l'écriture sur SQL Server

psyrio
Comète

Bonjour,

 

J'ai une problématique importante sur la lecture et l'écriture de données à partir d'un SQL Server (v2017).

Après avoir fait le tour du forum, j'ai mis en place plusieurs recommandations mais qui semble encore ne pas permettre d'atteindre un résultat suffisant.

 

En effet, j'ai une succession de workflow qui prend aujourd'hui au minimum 9 heures de chargement, avec une volumétrie qui augmente régulièrement et le temps de chargement qui lui suit une courbe presque exponentielle.

 

Mes workflows se lancent les uns après les autres afin de ne pas avoir des workflows trop complexes, j'utilise ALTERYX en version 2020.3 et le moteur AMP sur certains workflows complexes. J'ai 8 vCPU et 120 Go de RAM sur mon serveur hébergeant ALTERYX. J'ai autorisé 4 process pour le moteur AMP avec chacun 27 Go de RAM Max.

 

J'utilise en lecture le pilote OLDB car d'après plusieurs sources, il est plus efficace en lecture.

Pour l'écriture, j'utilise l'ODBC (en version 03.80) avec Bulk avec 10000 en taille de package.

 

La volumétrie dépend des workflows mais peut attendre plusieurs millions de lignes.

J'utilise déjà aussi dans mes workflows le tool "Auto Field" permettant d'avoir la meilleur taille et type pour mes colonnes.

J'utilise des tools Stop Until Done pour ne pas écrire en même temps deux tables dans le même workflow afin de ne pas saturer la base de données.

 

J'ai aussi changer le "recovery model" de ma base de données a "SIMPLE" et mis les options "AUTO_CRATE_STATISTICS" and "AUTO_UPDATE_STATISTICS" and "AUTOSHRINK" to "OFF".

 

J'avoue être à cours d'idée, c'est pourquoi je poste ce message afin de savoir si vous avez des conseils, bests practices qui pourraient m'aider.

 

Merci d'avance et bon dimanche.

 

Cordialement,

Psyrio

 

 

 

14 RÉPONSES 14
psyrio
Comète

Bonjour Mathieu,

 

Merci de ces éléments. 

J'ai déjà mis en place depuis un moment le mode bulk mais justement je trouve que c'est pas magnifique comme gain de temps mais justement je n'arrive pas à trouver une documentation pertinente et compréhensible sur cette fonctionnalité et justement comment la paramétrer au mieux par rapport à la CPU et à la RAM. Je suis preneur si tu as des idées 🙂

 

l'AMP est déjà activé sur mon designer sur une grande partie des workflows.

J'ai quadruplé ma RAM justement ce weekend j'était à 30 Go je suis passé en 120 Go, j'ai autorisé 4 cœurs sur les 8 et j'ai mis 27 Go par cœur dans ALTERYX mais justement le gains de temps est très pauvre (environ 15 minutes) par rapport à ma machine de 30 Go d'avant d'où mon poste. 


Je suis ouvert à partager cela et peut être justement à permettre de tester au mieux les paramètres AMP et Bulk.

 

 

mathieuf
Alteryx
Alteryx

Pour les détails du fonctionne du Bulk avec SQL Server, as-tu regarder les documentations de Microsoft : https://docs.microsoft.com/fr-fr/sql/t-sql/statements/bulk-insert-transact-sql?view=sql-server-ver15...?

 

La taille de la transaction semble correspondre à un nombre de ligne qui passe par transaction, il y a peut-être des paramètres à "synchroniser" avec SQL Server.

 

Est-ce que le réseau entre les 2 serveurs est rapide ?

Est-ce la base de données est libre (pas de double écritue ou de process en arrière plan de nettoyage ou autres) et optimisé pour tes actions ?

 

Un DBA te sera d'une grande aide sur ce sujet.

Désolé de ne pouvoir t'aider plus !

psyrio
Comète

Hello,

 

Merci pour ce document, un peu technique pour moi j'avoue je vais essayer de décoder ^^

Les deux serveurs discutent à travers un réseau interne mais je ne saurai pas mesurer ou voir où se trouve la vitesse de dialogue entre les deux serveurs.

 

La base de donnée est libre, en effet je me suis arrangé pour que rien ne tourne pendant les chargements ALTERYX afin d'assurer une disponibilité maximale.

 

Merci à toi et bonne soirée.

StephV
Alteryx Alumni (Retired)

Bonjour @psyrio,

 

merci beaucoup pour ta participation au forum et ta question !

 

Si la réponse de @mathieuf t'a aidé, pourrais-tu "l'Accepter comme solution", tu aideras ainsi d'autres utilisateurs Alteryx.

 

Merci à toi et une très bonne journée !​​​​​​​

Steph Vitale-Havreng
psyrio
Comète

Bonjour @StephV 

 

Le post est intéressant mais je suis incapable techniquement de pouvoir le mettre en pratique malheureusement.

 

Je le met en solution même si je pense qu'il faudrait aller un peu plus loin dans les tests et voir même avec ALTERYX afin de tester au mieux ces deux fonctionnalités.

 

Bonne journée.

 

Cordialement,

Bruno

Étiquettes