{"id":4054,"date":"2013-03-04T15:17:54","date_gmt":"2013-03-04T14:17:54","guid":{"rendered":"http:\/\/blog.capdata.fr\/?p=4054"},"modified":"2019-09-13T14:11:11","modified_gmt":"2019-09-13T13:11:11","slug":"partitionnement-semantique","status":"publish","type":"post","link":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/","title":{"rendered":"Partitionnement s\u00e9mantique"},"content":{"rendered":"<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F4054&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F4054&#038;title=Partitionnement%20s%C3%A9mantique\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Partitionnement%20s%C3%A9mantique&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F4054\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a><p><strong>Sybase Adaptive Server Enterprise<\/strong> autorise le partitionnement s\u00e9mantique des tables depuis la v15.0.<\/p>\n<p>Le partitionnement consiste en un d\u00e9coupage logique des tables sans aucun impact sur la syntaxe des requ\u00eates SELECT, DELETE, INSERT et UPDATE. L&#8217;op\u00e9ration est transparente pour l&#8217;\u00e9criture des requ\u00eates.<\/p>\n<p>Chaque partition est un sous-objet de la table et contient certaines de ses lignes de donn\u00e9es.<\/p>\n<p>Les partitions ne sont pas consultables : aucune requ\u00eate ne peut les attaquer. Bien qu&#8217;une partition contienne une partie des lignes d&#8217;une table, il n&#8217;est pas possible de savoir lesquelles.<\/p>\n<p>Lorsqu&#8217;une table n&#8217;est pas pas partitionn\u00e9e, ASE consid\u00e8re qu&#8217;elle contient une seule partition et lui attribue un nom qui commence par le nom de la table.<\/p>\n<p>La proc\u00e9dure stock\u00e9e qui nous informe des partitions d&#8217;une table est <code>sp_helpartition<\/code> suivi ou non du nom d&#8217;une table.<\/p>\n<p>Il y a 4 types de partitionnement (les 3 derniers sont les partitionnements s\u00e9mantiques)<\/p>\n<ul>\n<li>By <strong>roundrobin <\/strong>: c&#8217;est le partitionnement par d\u00e9faut dans ASE. Lors des INSERT, il distribue les lignes \u00e9quitablement et circulairement entre les partitions. L&#8217;int\u00e9r\u00eat c&#8217;est juste de partager les lignes de mani\u00e8re \u00e9gale sur toutes les partitions.<\/li>\n<li>By <strong>hash <\/strong>: on peut choisir la colonne sur laquelle ASE va se baser pour confectionner un hachage. Il n&#8217;est pas possible de conna\u00eetre cette r\u00e8gle de hachage : ASE la choisit au mieux pour r\u00e9partir les lignes \u00e9quitablement sur toutes les partitions. Il est important de choisir une colonne tr\u00e8s significative pour profiter au mieux de ce hachage.<\/li>\n<li>By <strong>list <\/strong>: s\u00e9gr\u00e9gation des lignes de la table en fonction de valeurs pr\u00e9cises dans une colonne d\u00e9cisive.<\/li>\n<li>By <strong>range <\/strong>: s\u00e9gr\u00e9gation des lignes de la table en fonction de plages de valeurs dans une colonne d\u00e9cisive.<\/li>\n<\/ul>\n<p>Le partitionnement &#8220;by-range&#8221;\u00a0se montre tr\u00e8s performant sur les tables contenant \u00e9norm\u00e9ment de lignes, surtout si certaines lignes sont rarement consult\u00e9es.<\/p>\n<p>Au moment du partitionnement, il est judicieux de d\u00e9couper sa table en 3 ou 4 morceaux. Prenons l&#8217;exemple d&#8217;une application sp\u00e9cialis\u00e9e dans la m\u00e9t\u00e9orologie : elle stocke toutes les donn\u00e9es m\u00e9t\u00e9o quotidiennes de toutes les villes du monde. La table en question va progressivement contenir beaucoup de lignes. Or, la plupart des requ\u00eates de lecture qui vont l&#8217;atteindre se cantonneront aux dates les plus r\u00e9centes : m\u00e9t\u00e9o d&#8217;aujourd&#8217;hui, d&#8217;hier, d&#8217;avant-hier. La table est donc encombr\u00e9e par son historique.<\/p>\n<p>Parmi toutes les donn\u00e9es contenues sur la table, pour favoriser la lecture des dates r\u00e9centes, il est possible d&#8217;associer le partitionnement &#8220;by-range&#8221; et la segmentation.<\/p>\n<p>En effet, il peut \u00eatre judicieux de\u00a0cr\u00e9er 3 segments dans la base : chacun reli\u00e9 \u00e0 un device diff\u00e9rent. Les devices peuvent \u00eatre eux-m\u00eame allou\u00e9s sur des supports physiques de performance et co\u00fbt diff\u00e9rents :<\/p>\n<ul>\n<li>Un device pour les &#8220;anciennes&#8221; donn\u00e9es, par exemple, un disque dur peu co\u00fbteux et offrant des performances basiques mais un espace de stockage immense.<\/li>\n<li>Un device pour les donn\u00e9es &#8220;r\u00e9centes&#8221;, par exemple, un disque dur plus performant, nettement plus cher.<\/li>\n<li>Un device pour les donn\u00e9es &#8220;actuelles&#8221;, par exemple, un support SSD r\u00e9put\u00e9 pour \u00eatre particuli\u00e8rement rapide mais trop co\u00fbteux pour disposer d&#8217;\u00e9normes capacit\u00e9s.<\/li>\n<\/ul>\n<div>A noter qu&#8217;il n&#8217;est pas obligatoire de disposer de disques de performances in\u00e9gales. On peut tr\u00e8s bien avoir 3 disques tout aussi rapides. C&#8217;est juste plus on\u00e9reux financi\u00e8rement mais ce n&#8217;est pas une limite technique.<\/div>\n<p>D\u00e8s lors, avec un d\u00e9coupage par date, les donn\u00e9es de plus d&#8217;un mois se retrouveront sur le premier device, les donn\u00e9es de moins d&#8217;un mois mais plus d&#8217;une semaine se retrouveront sur le deuxi\u00e8me disque et enfin, les donn\u00e9es de moins d&#8217;une semaine seront accessibles \u00e0 une rapidit\u00e9 in\u00e9gal\u00e9e gr\u00e2ce au SSD du 3\u00e8me device. Gr\u00e2ce au &#8220;partition pruning&#8221; (terme d&#8217;horticulture qui signifie la &#8220;taille&#8221;), lors de son tablescan, l&#8217;optimiseur va ignorer certaines partitions s&#8217;il est s\u00fbr \u00e0 100% que la donn\u00e9e qu&#8217;il cherche ne s&#8217;y trouve pas.<br \/>\n<code><br \/>\nThe type of query is SELECT.<\/code><\/p>\n<p>ROOT:EMIT Operator<\/p>\n<p>|SCAN Operator<br \/>\n| FROM TABLE<br \/>\n| temperatures<br \/>\n| <strong>[ Eliminated Partitions : 1 2 ]<\/strong><br \/>\n| Table Scan.<br \/>\n| Forward Scan.<br \/>\n| Positioning at start of table.<br \/>\n| Using I\/O Size 2 Kbytes for data pages.<br \/>\n| With LRU Buffer Replacement Strategy for data pages.<code><\/code><\/p>\n<p>Durant les p\u00e9riodes creuses, par exemple, la nuit ou les week-end, il faudra syst\u00e9matiquement reconstruire la table afin de\u00a0rafra\u00eechir\u00a0ce partitionnement. Les partitions qui n&#8217;auront pas chang\u00e9 (typiquement, celle qui contient les donn\u00e9es les plus anciennes) ne seront pas reconstruites.<\/p>\n<p>La limite de ce syst\u00e8me c&#8217;est la fa\u00e7on dont on recherche les donn\u00e9es ensuite : seules les recherches bas\u00e9es sur la date au sens chronologique b\u00e9n\u00e9ficieront de cette mise en place. Pour toute recherche du genre &#8220;m\u00e9t\u00e9o de tous les 1er Janvier de 1970 \u00e0 nos jours&#8221; ou encore &#8220;toutes les donn\u00e9es m\u00e9t\u00e9o de la ville de New York de 1970 \u00e0 nos jours&#8221;, le partitionnement sera sans effet et sera peut-\u00eatre m\u00eame pire qu&#8217;avant car les 3 disques seront sollicit\u00e9s y compris le plus lent. Pour surmonter ces cas-l\u00e0, on pourra faire intervenir la &#8220;d\u00e9normalisation&#8221;.<\/p>\n<p>L&#8217;avantage du syst\u00e8me c&#8217;est sa compl\u00e8te transparence pour l&#8217;applicatif : rien n&#8217;est \u00e0 re-d\u00e9velopper c\u00f4t\u00e9 applicatif.<\/p>\n<p>Passons \u00e0 la pratique. Il faut commencer par autoriser le partitionnement s\u00e9mantique (by-hash, by-list ou by-range) en passant la commande\u00a0<code>sp_configure 'enable semantic partitioning', 1<\/code>.<\/p>\n<p>Ensuite il faut cr\u00e9er les <em>n<\/em> devices correspondant aux <em>n<\/em> supports de stockage.<br \/>\n<code><br \/>\ndisk init name='device_lent', physname='D:\/sybase\/meteo_data', size='1000M'<br \/>\ndisk init name='device_medium', physname='E:\/sybase\/meteo_data', size='100M'<br \/>\ndisk init name='device_rapide', physname='F:\/sybase\/meteo_data', size='50M'<br \/>\n<\/code><\/p>\n<p>Ensuite, il faut attacher la base de donn\u00e9es aux<em> n<\/em> devices :<br \/>\n<code><br \/>\ncreate database meteo on<br \/>\ndevice_lent=1000,<br \/>\ndevice_medium=100,<br \/>\ndevice_rapide=50<br \/>\n<\/code><br \/>\nPuis il faut cr\u00e9er les <em>n<\/em> segments correspondants :<br \/>\n<code><br \/>\nsp_addsegment segment_lent, meteo, device_lent<br \/>\nsp_addsegment segment_medium, meteo, device_medium<br \/>\nsp_addsegment segment_rapide, meteo, device_rapide<br \/>\n<\/code><br \/>\nEnfin, vient le moment o\u00f9 on d\u00e9coupe la table en la r\u00e9partissant sur les <em>n<\/em> segments :<br \/>\n<code><br \/>\nalter table temperatures partition by range (date)<br \/>\n(<br \/>\npartition_ancienne\u00a0values &lt;= ('2013-01-01') on segment_lent,<br \/>\npartition_recente\u00a0values &lt;= ('2013-02-15') on segment_medium,<br \/>\npartition_actuelle\u00a0values &lt;= (MAX) on segment_rapide<br \/>\n)<\/code><\/p>\n<p>On peut aussi trouver ce genre de montage avec le partitionnement par liste (by-list) pour d&#8217;autres applications. Par exemple, on peut imaginer une table qui contient des donn\u00e9es consultables et des donn\u00e9es &#8220;supprim\u00e9es&#8221; au sens applicatif. En quelques sortes, des donn\u00e9es visibles et des donn\u00e9es cach\u00e9es mais qui restent dans la table pour des raisons de conservation historique.<\/p>\n<p>Comme pr\u00e9c\u00e9demment, on va partitionner pour conserver les donn\u00e9es cach\u00e9es sur un disque physique peu co\u00fbteux et donc peu performant et les donn\u00e9es visibles sur un disque performant.<\/p>\n<p>Mais il y a un gros inconv\u00e9nient chez le partitionnement par liste : lorsque la colonne responsable du partitionnement contient une valeur non pr\u00e9vue, l&#8217;INSERT tombe en erreur. L&#8217;application est donc tenue de g\u00e9rer correctement le contenu de la colonne d\u00e9cisive.<\/p>\n<p>Exemple de mise en pratique :<br \/>\n<code><br \/>\nalter table contrats partition by list (visibilite)<br \/>\n(<br \/>\npartition_cachee values (0) on segment_cachee,<br \/>\npartition_visible values (1) on segment_visible<br \/>\n)<\/code><\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F4054&#038;text=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F4054&#038;title=Partitionnement%20s%C3%A9mantique\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-24 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=Partitionnement%20s%C3%A9mantique&#038;body=Article%20sur%20le%20blog%20de%20la%20Capdata%20Tech%20Team%20%3A%20:%20https%3A%2F%2Fblog.capdata.fr%2Findex.php%2Fwp-json%2Fwp%2Fv2%2Fposts%2F4054\" style=\"font-size: 0px;width:24px;height:24px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"24\" height=\"24\" style=\"display: inline;width:24px;height:24px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/blog.capdata.fr\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/48x48\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>Sybase Adaptive Server Enterprise autorise le partitionnement s\u00e9mantique des tables depuis la v15.0. Le partitionnement consiste en un d\u00e9coupage logique des tables sans aucun impact sur la syntaxe des requ\u00eates SELECT, DELETE, INSERT et UPDATE. L&#8217;op\u00e9ration est transparente pour l&#8217;\u00e9criture&hellip; <a href=\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\" class=\"more-link\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":7868,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-4054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sybase"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Partitionnement s\u00e9mantique - Capdata TECH BLOG<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Partitionnement s\u00e9mantique - Capdata TECH BLOG\" \/>\n<meta property=\"og:description\" content=\"Sybase Adaptive Server Enterprise autorise le partitionnement s\u00e9mantique des tables depuis la v15.0. Le partitionnement consiste en un d\u00e9coupage logique des tables sans aucun impact sur la syntaxe des requ\u00eates SELECT, DELETE, INSERT et UPDATE. L&#8217;op\u00e9ration est transparente pour l&#8217;\u00e9criture&hellip; Continuer la lecture &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\" \/>\n<meta property=\"og:site_name\" content=\"Capdata TECH BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2013-03-04T14:17:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-13T13:11:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2013\/03\/partitionning.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3969\" \/>\n\t<meta property=\"og:image:height\" content=\"2979\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Capdata team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Capdata team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\"},\"author\":{\"name\":\"Capdata team\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9\"},\"headline\":\"Partitionnement s\u00e9mantique\",\"datePublished\":\"2013-03-04T14:17:54+00:00\",\"dateModified\":\"2019-09-13T13:11:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\"},\"wordCount\":1109,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"articleSection\":[\"Sybase\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\",\"url\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\",\"name\":\"Partitionnement s\u00e9mantique - Capdata TECH BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/blog.capdata.fr\/#website\"},\"datePublished\":\"2013-03-04T14:17:54+00:00\",\"dateModified\":\"2019-09-13T13:11:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/blog.capdata.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Partitionnement s\u00e9mantique\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.capdata.fr\/#website\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"name\":\"Capdata TECH BLOG\",\"description\":\"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting\",\"publisher\":{\"@id\":\"https:\/\/blog.capdata.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.capdata.fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/blog.capdata.fr\/#organization\",\"name\":\"Capdata TECH BLOG\",\"url\":\"https:\/\/blog.capdata.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"contentUrl\":\"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp\",\"width\":800,\"height\":254,\"caption\":\"Capdata TECH BLOG\"},\"image\":{\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9\",\"name\":\"Capdata team\",\"sameAs\":[\"https:\/\/www.capdata.fr\"],\"url\":\"https:\/\/blog.capdata.fr\/index.php\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Partitionnement s\u00e9mantique - Capdata TECH BLOG","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/","og_locale":"fr_FR","og_type":"article","og_title":"Partitionnement s\u00e9mantique - Capdata TECH BLOG","og_description":"Sybase Adaptive Server Enterprise autorise le partitionnement s\u00e9mantique des tables depuis la v15.0. Le partitionnement consiste en un d\u00e9coupage logique des tables sans aucun impact sur la syntaxe des requ\u00eates SELECT, DELETE, INSERT et UPDATE. L&#8217;op\u00e9ration est transparente pour l&#8217;\u00e9criture&hellip; Continuer la lecture &rarr;","og_url":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/","og_site_name":"Capdata TECH BLOG","article_published_time":"2013-03-04T14:17:54+00:00","article_modified_time":"2019-09-13T13:11:11+00:00","og_image":[{"width":3969,"height":2979,"url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2013\/03\/partitionning.jpg","type":"image\/jpeg"}],"author":"Capdata team","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Capdata team","Dur\u00e9e de lecture estim\u00e9e":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#article","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/"},"author":{"name":"Capdata team","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9"},"headline":"Partitionnement s\u00e9mantique","datePublished":"2013-03-04T14:17:54+00:00","dateModified":"2019-09-13T13:11:11+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/"},"wordCount":1109,"commentCount":0,"publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"articleSection":["Sybase"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/","url":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/","name":"Partitionnement s\u00e9mantique - Capdata TECH BLOG","isPartOf":{"@id":"https:\/\/blog.capdata.fr\/#website"},"datePublished":"2013-03-04T14:17:54+00:00","dateModified":"2019-09-13T13:11:11+00:00","breadcrumb":{"@id":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/blog.capdata.fr\/index.php\/partitionnement-semantique\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/blog.capdata.fr\/"},{"@type":"ListItem","position":2,"name":"Partitionnement s\u00e9mantique"}]},{"@type":"WebSite","@id":"https:\/\/blog.capdata.fr\/#website","url":"https:\/\/blog.capdata.fr\/","name":"Capdata TECH BLOG","description":"Le blog technique sur les bases de donn\u00e9es de CAP DATA Consulting","publisher":{"@id":"https:\/\/blog.capdata.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.capdata.fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/blog.capdata.fr\/#organization","name":"Capdata TECH BLOG","url":"https:\/\/blog.capdata.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/","url":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","contentUrl":"https:\/\/blog.capdata.fr\/wp-content\/uploads\/2023\/01\/logo_capdata.webp","width":800,"height":254,"caption":"Capdata TECH BLOG"},"image":{"@id":"https:\/\/blog.capdata.fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/cap-data-consulting\/mycompany\/"]},{"@type":"Person","@id":"https:\/\/blog.capdata.fr\/#\/schema\/person\/bfd9395c8ba4fa125792a543377035e9","name":"Capdata team","sameAs":["https:\/\/www.capdata.fr"],"url":"https:\/\/blog.capdata.fr\/index.php\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/4054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/comments?post=4054"}],"version-history":[{"count":41,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/4054\/revisions"}],"predecessor-version":[{"id":7869,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/posts\/4054\/revisions\/7869"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media\/7868"}],"wp:attachment":[{"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/media?parent=4054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/categories?post=4054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capdata.fr\/index.php\/wp-json\/wp\/v2\/tags?post=4054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}