background preloader

Sql

Facebook Twitter

SQL Server Indexed Views: The Basics. Views are a valuable tool for the SQL Server Developer, because they hide complexity and allow for a readable style of SQL expression.

SQL Server Indexed Views: The Basics

They aren't there for reasons of performance, and so indexed views are designed to remedy this shortcoming. They're great in certain circumstances but they represent a trade-off, and they come with considerable 'small print'. Jes Borland explains. Using A Non-correlated Subquery To Avoid DISTINCT. Nobody wants duplicate data.

Using A Non-correlated Subquery To Avoid DISTINCT

It’s messy, wastes space, and looks really bad on a report – I get that. What I don’t get is why so many people (developers, I’m lookin’ at you) think DISTINCT is the only way to avoid it. I’ve even run into folks who use DISTINCT on every query, you know, just in case. I realize it’s not all your fault, T-SQL makes it too easy to do things the wrong way. I’m writing this to show you the right way. Let’s look at an example. Imagine this typical, real-world scenario – your boss says “Build me a report that shows me which salespeople have sold red helmets, I want to take them all out on my yacht. Does it work? The results contain several duplicate rows. This one, like the first, returns a list of salespeople, and this time only 17 of them, without dupes:

Foreign Keys are Not Free. May 14th, 2014 | Published in Database, Tech Talk | 6 Comments PostgreSQL is a pretty good database, and I enjoy working with it.

Foreign Keys are Not Free

However, there is an implementation detail that not everyone knows about, which can drastically affect table performance. What is this mysterious feature? I am, of course, referring to foreign keys. Data Modeling - Complex Relationships. TR 37. Index clustered… qu’est ce que c’est ? Quelle est la différence entre un index cluster et un index non cluster ?

Index clustered… qu’est ce que c’est ?

Voici un petit article qui vous permettra de comprendre cette notion fondamentale… Derrière chaque clef primaire (contrainte PRIMARY KEY) comme derrière chaque contrainte de type UNIQUE, les SGBDR créés des index. Un index est une structure de données redondante qui permet d’ordonner les données indexées afin de retrouver le plus vite possible les données que l’on index. Ainsi les n° dans une rue constituent en fait un index… Autrefois il n’y avait pas de n° dans les rues (mais il y avait moins de monde et les gens se connaissait… On a ensuite inventé les immeubles à appartement, ce qui a compliqué la chose). Grâce à la numérotation des immeubles il est devenu facile de se repérer. Si je vous invite chez moi ce soir à Paris pour le diner en vous donnant rendez-vous à 20h aux Champs Élysées (hé oui, SQL ça rapporte, alors il me fallait une demeure prestigieuse… Au fait, que veut dire cluster en français ? Indexer avec SQL-Server... oui mais quoi ? Dans la vie courante nous sommes entourés d'index : un code postal, le n° d'un immeuble dans une rue, les numéros de téléphone sont des index.

Indexer avec SQL-Server... oui mais quoi ?

Autrefois, lorsque le téléphone fit son apparition (Clémenceau aurait dit du téléphone "Quoi ? On vous sonne comme un laquais ??? ") il n'y avait pas de numéro. On agitait une manivelle qui avait pour effet de réveiller l'opératrice du standard auquel on était physiquement relié. Puis on demandait à cette personne de nous connecter avec Monsieur le Marquis de Carabas à Toledo. Vues matérialisées. Tables vs vue vs vue matérialisée On va tester les performances des vues et des vues matérialisées en créant trois procédures stockées différentes, répondant à la même question : quelle est l'année ayant rapporté le plus en termes d'adoption de chats ?

Vues matérialisées

Les trois procédures utiliseront des objets différents : l'une fera la requête directement sur les tables ;l'autre fera la requête sur la vue ;la dernière utilisera la vue matérialisée. Nos tables contenant très peu de données, la requête sera répétée un millier de fois, afin que les temps d'exécution soient utilisables. Empêcher MySQL d'utiliser le cache Lorsqu'on exécute la même requête plusieurs fois de suite, MySQL ne l'exécute en réalité qu'une seule fois, et stocke le résultat en cache. Conception d'un entrepôt de données.

Nous avons vu dans mes articles précédents ce qu'était le BI, ce que comprenait un environnement décisionnel et qu'il avait comme concept central l'entrepôt de données ou le Data Warehouse.

Conception d'un entrepôt de données

Intéressons nous maintenant à comment concevoir un entrepôt de données. Quelle structure permet-elle d'avoir les fonctionnalités requises pour un entrepôt de données ? Quelles sont les techniques utilisées pour bien concevoir ? Quels sont les indicateurs d'une bonne conception ? Ce mini cours commencera par introduire (ou réintroduire) les concepts fondamentaux de l'informatique décisionnelle (nécessaires pour la compréhension de cet article), continuera par l'explication des méthodes de conception d'entrepôt de données via une étude de cas, et terminera par une critique de ces techniques et une conclusion mentionnant les indicateurs d'une bonne conception d'entrepôt.

II-A. J'estime en avoir assez parlé ici et ici : mais un peu de répétition ne fait pas de mal !!! II-B. II-C. II-D. SSIS to SQL Server Data Type Translations. Learn SQL.