Multiples index simples en OLAP (Décisionnel)

Est-il profitable de créer les index simples sur les colonnes des dimensions ? Afin de rentrer dans les détails je vous propose faire quelques tests simples.

Les particularités

Pour utiliser N index de la même table dans la même requête le moteur doit confronter (l'intersection en cas "AND") les N sous-ensembles au moyen de "Merge Join" (le coût O(n) environ), "Hash Match" (le coût O(n * log2 n) environ) ou une autre méthode i.e. "Bitmap".

Les particularités d'OLAP (relationnel) :

Séquences en SQL Server

Les séquences (compteurs) sont introduits en 2012. Par contre, pour les anciennes versions il vous faut les implémenter.

Implémentation 1

Avantages: une tables pour toutes les séquences
Désavantages: pour éviter les verrouillages lors d'insertions intensives depuis les connexions simultanées il faut l’appeler hors de la transaction

MongoDB vs SQL Server ?

Quelques épisodes de la vie NoSQL vue par YesSQL.

Ce sujet a été monté lors de la validation technique d'un projet. Le scénario des tests est :

  • estimer l'insertion intensive des données depuis les nombreuses unités (par exemple, les capteurs)
  • comparer la simplicité et la performance des requêtes « typiques »

Le test d'insertion, ou l'Expulsion du Paradis

J'ai limité l'insertion des données depuis les multiples capteurs par 10 millions lignes ce que est corresponde à 1 heure de travail environ.

Pagination dans SQL Server 2012

Bonne nouvelle pour les développeurs ! Enfin, SQL Server 2012 introduit l'instruction de pagination ORDER BY OFFSET au niveau de la requête SQL. Est-ce que cela veut dire que les anciennes méthodes ne sont plus valables ? Faisons-nous les tests pour y répondre...

Scénario de test

L'archive des scripts SQL de test comprit un fichier par une étape :

Exporter une table avec la propriété "identity"

Comment exporter une ou plusieurs tables dont une colonne a la propriété "identity" avec l’assistant d'export des données (data export wizard) ?

Démarrez l'assistant sur la BDD source et choisissez les paramètres de connexion de BDD SQL Server source et cible.

Notez que les tables cibles ne doivent pas exister dans la BDD cible car nous les créerons lors d'export.

Export SQL Server table data with identity

Import rapide des données entre 2 serveurs SQL

L'import des données est habituel en décisionnel. La méthode ordinaire ETL est exporter les donnes source en fichier CSV puis le transmettre sur le serveur cible (stockage partagé) et enfin importer ce fichier en bloc (bulk insert ou bcp).

Voici une autre méthode "pure SQL" qui vous permet réduire le temps en 2 environ. Les gars SSIS peuvent essayer le reproduire ;)

Pages

Subscribe to Mechanics of software RSS