La puissance du in-memory dans SQL Server : Le moteur xVelocity pour la BI et l'OLTP
 

Like this? Share it with your network

Share

La puissance du in-memory dans SQL Server : Le moteur xVelocity pour la BI et l'OLTP

le

  • 958 vues

Tour d'horizon de ce que SQL Server propose et proposera prochainement en termes de traitement in-memory. Découvrez la puissance, les bénéfices et les secrets du moteur xVelocity utilisé : - pour ...

Tour d'horizon de ce que SQL Server propose et proposera prochainement en termes de traitement in-memory. Découvrez la puissance, les bénéfices et les secrets du moteur xVelocity utilisé : - pour la BI: Analysis Services 2012, PowerPivot - dans le moteur SQL Server : update du ColumnStore Index, Projet Hekaton pour l'OLTP in-memory

Statistiques

Vues

Total des vues
958
Vues sur SlideShare
958
Vues externes
0

Actions

J'aime
0
Téléchargements
23
Commentaires
0

0 Ajouts 0

No embeds

Accessibilité

Catégories

Détails de l'import

Uploaded via as Microsoft PowerPoint

Droits d'utilisation

© Tous droits réservés

Report content

Signalé comme inapproprié Signaler comme inapproprié
Signaler comme inapproprié

Indiquez la raison pour laquelle vous avez signalé cette présentation comme n'étant pas appropriée.

Annuler
  • Full Name Full Name Comment goes here.
    Êtes-vous sûr de vouloir
    Votre message apparaîtra ici
    Processing...
Poster un commentaire
Modifier votre commentaire
  • Notation
  • Intro code / dev
  • .
  • While Hekaton’s memory optimized tables must fully fit into main memory, the database as a whole need not. These in-memory tables can be used in queries just as any regular table, however providing optimized and contention-free data operation at this stage. After migrating to optimized in-memory storage, stored procedures operating on these tables can be transformed into natively compiled stored procedures, dramatically increasing the processing speed of in-database logic. Recompiling these stored procedures is, again, done through T-SQL, as shown below:

La puissance du in-memory dans SQL Server : Le moteur xVelocity pour la BI et l'OLTP Presentation Transcript

  • 1. Donnez votre avis !Depuis votre smartphone, sur :http://notes.mstechdays.frDe nombreux lots à gagner toutes les heures !!!Claviers, souris et jeux Microsoft…Merci de nous aider à améliorer les TechDayshttp://notes.mstechdays.fr
  • 2. La puissance du In-Memory dans SQL Server :Le moteur xVelocity pour laBI et lOLTPNadia Ben El KadiMicrosoftCode / DéveloppementFrédéric PICHAUTMicrosoftAvec la collaboration d’Aurélien Koppel qui n’a pas pu assurer laprésentation.
  • 3. • La tendance « In-Memory »• Moteur(s) xVelocity• BI• OLTP• Conclusion• QuestionsSommaire
  • 4. LATENDANCE « IN MEMORY »
  • 5. Tendances - ProcesseursMoore’s Law: moretransistors and coresClock speeds notincreasing…Perf/Clock (ILP) notincreasing… due to power/heat limitsChart referencehttp://www.gotw.ca/publications/concurrency-ddj.htm
  • 6. • La plupart des systèmes OLTP ont une taille de base< 1TB• L’ensemble de travail est généralement plus petit• Lorsque les bases actuelles ont été crées:• La mémoire était chère• La taille des données était > à la taille mémoire disponible• Nécessitait des mécanismes complexes de pagination pourpersister les données.• Nos clients demandent de faibles temps de latence à grande échelle.Tendances – Charges OLTP
  • 7. MOTEUR(S) XVELOCITY
  • 8. • BI: xVelocity in-memory analytics engine– PowerPivot (Excel 2010 et >)– Excel 2013– Analysis Services 2012 – Modèle tabulaire• SQL DataWarehousing: xVelocity memory optimizedColumnStore index– ColumnStore Indexes• SQL: xVelocity main memory optimized OLTP– Projet HekatonMoteurs Xvelocity pour la BI et l’OLTP
  • 9. • Algorithmes de compression (x10-x100)– Dictionnaire des valeurs distinctes des colonnesréférencées dans un indexe Bitmap– AutresCompression
  • 10. XVELOCITY EN BI
  • 11. • Add- in Excel gratuit• Analyse de volumes importants de données– Permet de dépasser la limite de 1 Millions de lignes d’une feuille Excel traditionnelle• Multi sources:– Excel, CSV, ODBC, SSAS, Flux…• Excel 2010– Add-in gratuit téléchargeable• Excel 2013– Add-in inclus par défautPowerPivot & Excel 2013
  • 12. • Version In-Memory d’Analysis Services• Possibilité Import de fichiers PowerPivot• BI Entreprise– Sécurité– PartitionsAnalysis Services 2012 - Tabular
  • 13. xVELOCITY CLUSTEREDCOLUMNSTORE
  • 14. • Exécution rapide pour le requêtes DW– Environ 10x voir plus• Réduction de l’espace• Possibilité Insert, Update, Deleted• Plus besoin d’autres indexes• Plus de type de données supporté– Supprime des limitations des non-clusteredcolumnstores de SQL 2012Advantages des Clustered Columnstores0.05.010.015.020.0Table withcustomaryindexingTable withcustomaryindexing(pagecompression)Table with noindexingTable with noindexing(pagecompression)Table withcolumnstoreindexClusteredcolumnstoreSpace Used in GB101 million row table (Table + index space)
  • 15. Structure d’une Partition CCSI• CREATE CLUSTERED COLUMNSTOREOrganise et compresse le CS• BULK INSERT: Crée de nouveaux CSgroupes• INSERT: Les enregistrements sont placédans le RS (heap)– Quand le RS est plein un nouveau CS groupe estcréé• DELETE: Les enregistrements sontmarqués dans le Deleted Bitmap• UPDATE: Delete plus InsertPas prévu pour les applications OLTP,mais idéal pour les DW avecprincipalement de la lecture!Column Store (CS)DeletedBitmapRow Store (RS)Partition
  • 16. CommandesCREATE TABLE <table> ( … )CREATE CLUSTERED COLUMNSTORE INDEX <name> on <table>Conversion de la table en Clustered Columnstores IndexAttention à la mémoire et au parallélisme (MAXDOP 1)BULK INSERT, SELECT INTO <name> on <table>Crée des groupes d’enregistrements de 1M de lignesSi le dernier groupe n’est pas plein il restera dans le Row StoreINSERT/UPDATEStocke les lignes dans le Row StoreTuple Mover• Quand le RS contiens 1M de lignes, elles sont transférées dans un nouveau CS Row Group• Par default toutes les 5 minutes• Manuellement: ALTER INDEX <name> ON <table> REORGANIZELe partitionnement des Clustered Columnstores Indexes marche comme sur les autres tables
  • 17. • SQL Server 2012– Plusieurs limitations du moteur font que desjointure ne s’excecute pas en Batch mais enRow mode• vNext– Support de tous les types de JOIN• OUTER JOIN• Semi-join: IN, NOT IN– UNION ALL– Scalar aggregates– Mixed mode plans,…– Tous les types de données• Sauf CLR, (n)varchar(max), varbinary(max)BATCH MODE
  • 18. xVELOCITY DANS SQL (projetHekaton)
  • 19. • Un ajout au moteur SQL pour l’OLTP, optimisé pour une gestion en mémoire– Support des propriétés ACID– Le but de la V1 est spécifiquement orienté vers l’OLTP• Complètement intégré au moteur SQL Server– Un avantage sur nos compétiteurs– Une approche Hybride entre le In-memory et le traditionnel• Obtenir de la performance en éliminant le plus possible d’instruction– Des indexes optimisés en mémoire• Dissocié de la structure disque. Pas de B+tree, ni de buffer pool– Plus de mécanisme de locks & latches• Gestion de concurrence optimiste,– L’optimisation faite lors de la compilation• T-SQL compilé en code natif C• Target:– 2-5X d’amélioration en scalability– Jusqu’a10X i d’amélioration en performance certains workloads.Hekaton en bref
  • 20. Hekaton Architecture Principles20SQL Server Integration• Same manageability,administration &development experience• Integrated queries &transactions• Integrated HA andbackup/restoreMain-MemoryOptimized• Optimized for in-memorydata with full ACID• No buffer pool, B-trees orpages• Indexes (Hash e.g.) existonly in memory• Stream-based storageHigh Concurrency• Multi-version optimisticconcurrency control• Core engine uses lock-freealgorithms• No lock manager, latches orspinlocksT-SQL Compiled toMachine Code• T-SQL compiled to machinecode via C code generatorand VC• Invoking a procedure is justa DLL entry-point• Aggressive optimizations @compile-timeSteadily declining memoryprice, NVRAMMany-core processorsStalling CPU clock rate TCOHardware trends BusinessHybrid engine andintegrated experienceHigh performance dataoperationsFrictionless scale-upEfficient, business-logicprocessingCustomerBenefitsHekatonArchiectureDrivers
  • 21. Hekaton ArchitectureMemory-optimized Table FilegroupData FilegroupSQL Server.exeMemory_optimized Tables & IndexesTDS Handler and Session ManagementNatively CompiledSPs and SchemaBuffer Pool for Tables & IndexesProc/Plan cache for ad-hoc T-SQL and SPsClient AppTransaction LogQueryInterOpNon-durable TableT1 T4T3T2T1 T4T3T2T1 T4T3T2T1 T4T3T2TablesIndexesInterpreter for TSQL, query plans,expressionsT1 T4T3T2T1 T4T3T2Checkpoint & RecoveryAccess MethodsParser,Catalog,Algebrizer,OptimizerHekatonCompilerHekatonComponentKeyExisting SQLComponentGenerated .dllHashIndexes
  • 22. Hekaton ArchitectureSQL Server.exeBuffer Pool for Tables & IndexesHekaton Engine :Hash Indexes, Tables, Transactions, Multi-versioning, Checkpoint/Recovery, …Hkengine.dll=700 KBTDS Handler and Session ManagementNatively Compiled SPs& SchemaProc/Plan cache for ad-hoc T-SQL andSPsClient AppQueryInteropInterpreter for TSQL, queryplans, expressionsAccess Methods , LOBs, Lock Mgr, &StorageParser, Catalog, Algebrizer,OptimizerHekaton Compiler& VC compilerTransaction ManagerSecurityDatabase Mgmt and LogHekatonComponentIntegrationchangesBackup/Restore/HADRONKeyExisting SQLComponentCheckpoint & RecoveryGenerated .dllsqlmin.dll=39 MBSOSFilestream FilegroupMemory Optimized TableFilegroupData FilegroupNo Hekaton ChangesTransaction LogAdditional Hekaton Logrecords
  • 23. Main-memory optimized indexesMicrosoftConfidential2390,150 Susan Bogota50, ∞ Jane Prague100, 200 John Paris70, 90 Susan Brussels200, ∞ John BeijingTimestamps NameChain ptrs CityHash index onCityBPHash index onNameJS• Row can be part of multiple indexes, but there is only a single copy• Each row version has a valid time range indicated by two timestamps• A version is visible if transaction read time falls within the version’s valid time• Garbage collection of versions: incremental, parallel, non-blocking, cooperativeRow format
  • 24. Hekaton Resultats en single-coreEngineFactorFasterTrans /secSPs/sec CPIInstructions/ TranX FewerInstructionsSQL Server 1,420 6,970 2.4 973,000SQL ServerHekaton48 67,800 334,000 1.6 30,300 32• Test: Rejouer une trace des 3 plus fréquents updates du TPC-E• Pas de communication client/server• Pas d’I/O moteur sauf pour le transaction log• Toutes les données en mémoire pour les deux tests• Checkpoints off
  • 25. Operation Factor faster (slower) thanregular SQLCommentsInterop NativeSelect count(*)1 (2.5) =No clustered index scan inHekatonHash Join1 (1.3) N/A Uses index scanNested-loop Join1 4.0 N/A Probes into hash indexSingle-row selects1 1.3 40 SP doing selects in loopSingle-row selects1 1.2 17Native compiled SP calls SQL’srand()Single-row updates1 N/A 10 SP doing update in loopBwin Session State 6 Version M4 Expectation forOLTP workloadsAdvantage ofpushing work toSPsInterop targets appmigration, not perf(1) Table de 1 million d’enregistrements accédée en une requête ou SPHekaton Performances
  • 26. Migration vers Hekaton• StorageALTER DATABASE ContosoOLTP ADD FILEGROUP [ContosoOLTP_hk_fs_fg] CONTAINS MEMORY_OPTIMIZED_DATA;ALTER DATABASE ContosoOLTPADD FILE (NAME = [ContosoOLTP_fs_dir],FILENAME = H:MOUNTHEADDATACONTOSOOLTP_FS_DIR) to FILEGROUP [ContosoOLTP_hk_fs_fg];• TableCREATE TABLE Customers (CustomerID nchar (5) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT=100000),CompanyName nvarchar (40) NOT NULL INDEX IX_CompanyName HASH(CompanyName) WITH (BUCKET_COUNT=65536),ContactName nvarchar (30) NOT NULL ,ContactTitle nvarchar (30) NOT NULL ,Address nvarchar (60) NOT NULL ,City nvarchar (15) NOT NULL INDEX IX_City HASH(City) WITH (BUCKET_COUNT=1024),Region nvarchar (15) NOT NULL INDEX IX_Region HASH(Region) WITH (BUCKET_COUNT=1024),PostalCode nvarchar (10) NOT NULL INDEX IX_PostalCode HASH(PostalCode) WITH (BUCKET_COUNT=100000),Country nvarchar (15) NOT NULL ,Phone nvarchar (24) NOT NULL ,Fax nvarchar (24) NOT NULL) WITH (MEMORY_OPTIMIZED=ON)• Native procedureCREATE PROC InsertCustomers (@CustomerID nchar(5),@CompanyName nvarchar(40),@ContactName nvarchar(30),@ContactTitle nvarchar(30), @Address nvarchar(60),@City nvarchar(15),@Region nvarchar(15),@PostalCode nvarchar(10),@Country nvarchar(15),@Phone nvarchar(24),@Fax nvarchar(24))WITH NATIVE_COMPILATION, SCHEMABINDING, execute as owner asBEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, language = english)INSERT INTO [dbo].[Customers] VALUES(@CustomerID,@CompanyName,@ContactName,@ContactTitle,@Address,@City,@Region,@PostalCode,@Country,@Phone,@Fax);END
  • 27. Poursuivons la conversationSupport Premier à votre écoute!Nom du speakerFonction du speakerSociété du speakerStands F-G-H au Village Microsoft
  • 28. Pourcandidater,rendez-voussurlestandServer&CloudUnlienpourtoutsavoirsurSQLServer2012:www.microsoft.fr/SQL
  • 29. QUESTIONS
  • 30. Formez-vous en ligneRetrouvez nos évènementsFaites-vous accompagnergratuitementEssayer gratuitement nossolutions ITRetrouver nos expertsMicrosoftPros de l’ITDéveloppeurswww.microsoftvirtualacademy.comhttp://aka.ms/generation-apphttp://aka.ms/evenements-developpeurshttp://aka.ms/itcamps-franceLes accélérateursWindows Azure, Windows Phone,Windows 8http://aka.ms/telechargementsLa Dev’Team sur MSDNhttp://aka.ms/devteamL’IT Team sur TechNethttp://aka.ms/itteam