Dans le contexte d'une base de données, l'optimisation fait référence au processus de l'optimiseur de requêtes sélectionnant un plan d'exécution physique efficace.
J'ai utilisé un outil d'auto-index sur notre base de données MS SQL (j'ai modifié un script provenant de Microsoft qui examine les tables de statistiques d'index - Indexation automatique ). À partir des statistiques, j'ai maintenant une liste de recommandations pour les index à créer. Édition: Les index décrits ci-dessus …
J'utilise PostgreSQL 9.1 sur Ubuntu 12.04. Je dois sélectionner des enregistrements dans une plage de temps: ma table time_limitsa deux timestampchamps et une integerpropriété. Il y a des colonnes supplémentaires dans ma table réelle qui ne sont pas impliquées dans cette requête. create table ( start_date_time timestamp, end_date_time timestamp, id_phi …
Lors de la création de tables à partir de plusieurs jointures à utiliser dans l'analyse, à quel moment est-il préférable d'utiliser des vues plutôt que de créer une nouvelle table? Une des raisons pour lesquelles je préférerais utiliser des vues est que le schéma de base de données a été …
Ce qui suit est un extrait d’un livre sur la conception de la base de données (ISBN: 0-7645-7490-6): Le danger lié à l'utilisation de vues est le filtrage d'une requête par rapport à une vue, en s'attendant à lire une très petite partie d'un très grand tableau. Tout filtrage doit …
J'ai une requête comme celle-ci: DELETE FROM tblFEStatsBrowsers WHERE BrowserID NOT IN ( SELECT DISTINCT BrowserID FROM tblFEStatsPaperHits WITH (NOLOCK) WHERE BrowserID IS NOT NULL ) tblFEStatsBrowsers a 553 lignes. tblFEStatsPaperHits a 47.974.301 lignes. tblFEStatsBrowsers: CREATE TABLE [dbo].[tblFEStatsBrowsers]( [BrowserID] [smallint] IDENTITY(1,1) NOT NULL, [Browser] [varchar](50) NOT NULL, [Name] [varchar](40) NOT …
Pour une requête moyennement complexe que j'essaie d'optimiser, j'ai remarqué que la suppression de la TOP nclause modifie le plan d'exécution. J'aurais supposé que lorsqu'une requête incluait TOP nle moteur de base de données, la requête serait exécutée en ignorant la TOPclause puis, à la fin, réduirait simplement le résultat …
Il a été porté à mon attention que la USINGconstruction (au lieu de ON) dans la FROMclause de SELECTrequête pourrait introduire des barrières d'optimisation dans certains cas. Je veux dire ce mot clé: SELECT * De JOIN b USING (a_id) Juste dans des cas plus complexes. Contexte: ce commentaire à …
Examinons ces deux déclarations: IF (CONDITION 1) OR (CONDITION 2) ... IF (CONDITION 3) AND (CONDITION 4) ... Si CONDITION 1est TRUE, sera CONDITION 2vérifié? Si CONDITION 3est FALSE, sera CONDITION 4vérifié? Qu'en est-il des conditions sur WHERE: le moteur SQL Server optimise-t-il toutes les conditions d'une WHEREclause? Les programmeurs …
Cette requête obtient une liste des publications créées par les personnes que vous suivez. Vous pouvez suivre un nombre illimité de personnes, mais la plupart des personnes suivent <1000 autres. Avec ce style de requête, l'optimisation évidente serait de mettre en cache les "Post"identifiants, mais malheureusement, je n'ai pas le …
J'ai rencontré quelques SELECT DISTINCT TOP Nrequêtes qui semblent mal optimisées par l'optimiseur de requêtes SQL Server. Commençons par considérer un exemple trivial: une table d'un million de lignes avec deux valeurs alternées. Je vais utiliser la fonction GetNums pour générer les données: DROP TABLE IF EXISTS X_2_DISTINCT_VALUES; CREATE TABLE …
Dans les requêtes ci-dessous, les deux plans d'exécution devraient effectuer 1 000 recherches sur un index unique. Les recherches sont motivées par un balayage ordonné sur la même table source, donc devraient apparemment finir par rechercher les mêmes valeurs dans le même ordre. Les deux boucles imbriquées ont <NestedLoops Optimized="false" …
Nous avons rencontré un problème intéressant avec SQL Server. Prenons l'exemple de repro suivant: CREATE TABLE #test (s_guid uniqueidentifier PRIMARY KEY); INSERT INTO #test (s_guid) VALUES ('7E28EFF8-A80A-45E4-BFE0-C13989D69618'); SELECT s_guid FROM #test WHERE s_guid = '7E28EFF8-A80A-45E4-BFE0-C13989D69618' AND s_guid <> NEWID(); DROP TABLE #test; violon Veuillez oublier un instant que la s_guid …
J'avais l'impression que lors de l'utilisation de l' LIKEopérateur dans tous les optimisations pour des scénarios inconnus, les anciens et les nouveaux CE utilisent une estimation de 9% (en supposant que les statistiques pertinentes sont disponibles et que l'optimiseur de requêtes n'a pas à recourir à des suppositions de sélectivité). …
Je pose cette question afin de mieux comprendre le comportement de l'optimiseur et de comprendre les limites autour des spools d'index. Supposons que je mette des entiers de 1 à 10000 dans un tas: CREATE TABLE X_10000 (ID INT NOT NULL); truncate table X_10000; INSERT INTO X_10000 WITH (TABLOCK) SELECT …
Je vois des références fréquentes à des WITHrequêtes (expressions de table communes ou CTE) agissant comme une barrière d'optimisation, où le serveur n'est pas autorisé à pousser les filtres vers le bas dans les requêtes CTE, à extraire des expressions courantes hors du CTE, etc. être un comportement requis par …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.