Quelles sont les nouveautés de
SAP SQL Anywhere 12
Résumé
SQL Anywhere 12 arrive avec trois évolutions majeures :
- une pile spatiale complète avec support « sphère terrestre », catalogue SRID et importateur de shapefiles.
- un moteur plus malin et plus rapide — scans multi-index, lecture index-only, nouveau modèle de coût CPU et verrous allégés.
- une sécurité, un cloud et des outils remis à plat pour préparer l'édition OnDemand et les déploiements à grande échelle.
Le patch 12.0.1 ajoute des modes de connexion dédiés au cloud et des bibliothèques clientes SHA-2/OSGi. La plupart des gains sont disponibles dès l'upgrade + rebuild du catalogue ; les fonctions spatiales et l'événement de deadlock exigent un dbinit/dbunload-reload pour exposer les nouveaux objets système.
1. Performances moteur & optimiseur
- Scans multi-index (jusqu'à quatre) et récupération index-only permettent à l'optimiseur de résoudre des requêtes multi-predicats sans toucher le tas de données, via un nouveau hint dans la clause WITH.
- Un modèle de coût conscient du CPU remplace l'heuristique âgée d'une décennie, modifiant souvent les plans sur du matériel récent.
- Le plan-cache englobe désormais les DML simples qui l'esquivaient, réduisant encore le coût de parse/optimisation.
- Les charges intenses DDL/DML profitent de règles de verrouillage réécrites : les mises à jour non-clé ne bloquent plus les insertions FK concurrentes ; en isolation 2/3, un verrou tableau SHARE évite les verrous ligne.
- Validation, suppressions d'index et tables proxy distantes gagnent en rapidité ; les paquets réseau passent à 7 300 o (plancher 500 o) pour une latence plus faible.
2. Spatial, types de données & SQL
- Arrivée du support spatial natif : types géométriques, commandes CREATE SPATIAL REFERENCE SYSTEM/UNIT OF MEASURE, prédicats sphériques et procédure st_geometry_load_shapefile qui convertit un shapefile ESRI en table d'un seul appel.
- Les instructions INPUT/LOAD TABLE et OPENSTRING acceptent FORMAT SHAPEFILE et le mot-clé SRID pour ancrer les coordonnées dès l'ingestion.
- Nouveau TIMESTAMP WITH TIME ZONE haute précision (alias DATETIMEOFFSET) et longueurs CHAR/NCHAR/VARCHAR portées à 32 767 caractères.
- Les clauses TOP / LIMIT gèrent l'arithmétique 64 bits ; DELETE accepte enfin les alias de table.
3. Sécurité, cloud & connectivité
- Le commutateur serveur -kp autorise un principal Kerberos complet (service/host@REALM), remplaçant le vieillissant -kr.
- createcert gagne des raccourcis conviviaux ; OPENSTRING … ENCRYPTED permet au serveur de lire un fichier chiffré par UNLOAD … ENCRYPTED sans copie en clair.
- Avec 12.0.1, SQL Anywhere OnDemand introduit le mode de connexion CloudAdmin, des boîtes de dialogue cloud-aware et le paramètre NodeType qui oriente les connexions vers PRIMARY, MIRROR ou READONLY.
- Les messages serveur sont catégorisés / sévérisés et exposés via sa_server_messages, pratique pour filtrer les avertissements importants.
4. Administration & outils
- Les backups d'archives parallèles réduisent la fenêtre complète grâce à WITH CHECKPOINT LOG COPY et MAX WRITE n|AUTO.
- Le duo START SERVER / STOP SERVER remplace les anciens verbes ENGINE et prépare l'automatisation cross-plateforme.
- L'utilitaire dbstats apporte aux Unix les compteurs temps réel déjà disponibles sous Windows.
- Les rebuilds d'index compressés réduisent la taille des bases existantes, et on peut exécuter des requêtes de reporting sur le miroir pendant que le primaire traite l'OLTP.
- Un nouvel événement système deadlock couplé à sa_report_deadlocks automatise l'analyse post-mortem des blocages.
5. Données distantes & gestion de fichiers
- Les serveurs distants peuvent court-circuiter le Driver Manager via CLASS 'saodbc' USING 'DRIVER=SQL Anywhere Native;…', supprimant une couche dans les jointures cross-serveur.
- LOAD TABLE apprend USING COLUMN/USING VALUE pour importer des BLOB depuis une autre table ou variable, et peut désormais streamer des fichiers depuis le poste client via CmdSeq.
6. Mobilité & synchronisation
- Le moteur MobiLink 12 (mlsrv12) inaugure un cache dynamique (-cinit/-cmin/-cmax) et un protocole outbound-enabler intégré (-x oe) pour Relay Server.
- La synchro gère TIMESTAMP WITH TIME ZONE, LOB > 32 KB et géométries spatiales vers Oracle, SQL Server, DB2 et MySQL.
- Côté device, UltraLiteJ pour Android gagne compression ZLIB, chiffrement bout-en-bout, HTTP redémarrable et navigation de curseur complète.
7. Interfaces de programmation
- Des liaisons Ruby rejoignent la gamme ; les providers ASP.NET membership/roles/profile stockent l'état web dans SQL Anywhere.
- Le driver JDBC 4 ajoute PreparedStatement.setClob() et des métadonnées OSGi pour les conteneurs embarqués.
- Pour .NET, prise en charge Entity Framework 4.2 Code-First et nouvel installateur SetupVSPackage qui gère automatiquement GAC et machine.config.
8. Comportement & compatibilité
- Les heuristiques de taille de cache ajustent automatiquement le minimum à ⅛ de la valeur max.
- START/STOP ENGINE, -kr, le driver JDBC 3 et la syntaxe REPLICATE ON/OFF sont dépréciés ; l'engin signale un avertissement au démarrage et dbunload nettoie le catalogue.
- Le parsing de CONVERT se durcit : les chaînes temporelles doivent correspondre exactement au style (par ex. 11:45 AM ne convient plus au style 14).
Prochaines étapes suggérées
- Rebuild ou upgrade de bases test pour activer le spatial, l'événement deadlock et la compression d'index.
- Benchmarker les scans multi-index face aux hints manuels sur vos schémas en étoile.
- Activer le routage lecture-seule sur miroir pour vos outils BI/reporting.
- Mettre à jour les stacks clientes : JDBC 4/OSGi, EF 4.2, gem Ruby.
- Pour les déploiements cloud, tester le flux de connexion OnDemand (CloudAdmin / NodeType) et résoudre tôt les questions de pare-feu.