Articles of Performances

SQL – Récupérer des données dans le sens des pages

J'ai une procédure stockée qui renvoie une list de contacts. Comme il y a beaucoup de contacts, et pour des raisons de performance, je souhaite récupérer les contacts d'une manière par page, de sorte que seulement 20 contacts sont récupérés dans chaque instance. Un button sur mon formulaire me permettra d'aller à la page suivante, […]

Quelle taille int utiliseriez-vous pour les champs keys étrangers?

J'ai une database de type schéma en écanvas, avec des tables de faits qui ont beaucoup de foreign keys pour dimensionner les tables. Le nombre d'loggings dans chaque table de dimension est petit – souvent less de 256 octets, mais toujours inférieur à 64k. Les tables de faits ont généralement des centaines de milliers d'loggings, […]

Tailles de colonnes MySQL / PostgreSQL, pourquoi?

Je développe un programme et ai rencontré un bogue en insérant une valeur dans une colonne de tables, qui a le type int , et la valeur est plus grande que Integer.MAX_VALUE il crache une erreur disant que le nombre est trop grand. J'ai lu que le correctif pour cela est tout simplement modifier la […]

Pourquoi une requête serait-elle plus rapide dans SQL Server 2005 simplement parce qu'elle est dans une vue?

Nous avons une (grande) requête SELECT , qui peut durer environ 30 secondes. On me dit que lorsqu'il est placé dans une vue, il faut less de 5 secondes pour courir. Mon hypothèse est que SQL Server met en cache les plans de requête pour les requêtes qui ne changent pas, alors pourquoi l'amélioration massive […]

Lors de l'utilisation de DataReader, est-il préférable d'exécuter des instructions SQL ou des procs stockés à partir du sharepoint vue des performances?

J'ai besoin de récupérer certains champs d'une table qui correspondent à un ID donné. Actuellement, je construis une instruction sql SELECT a, b, c FROM d WHERE id = @id Ensuite, exécutez-le en utilisant le DataReader . Je pourrais aussi écrire un proc stocké qui prend l' id comme paramètre. Je voulais savoir qui est […]

Comment puis-je accélérer les insertions à plusieurs lignes vers le server SQL?

J'insère environ 400 lignes dans une table à la fois (SQL Server 2008). J'ai essayé UNION ALL, mais cela a considérablement ralenti les choses. Je me suis arrêté sur la requête suivante: INSERT INTO table VALUES (a, b,…),(c, d,…),…(x,y,…); Lorsque je fais cette requête via ODBC, cela prend environ 400 ms (j'utilise C ++ et […]

Fonction Table-Valuée extrêmement lente avec CTE récursif à l'intérieur

J'ai creta un TVF qui returnne une table avec des parent-loggings d'un CTE récursif ici . Cela fonctionne très bien et le résultat est disponible directement. Maintenant, je voulais get les loggings enfants (ils ont le même FK que le PK de l'logging en cours). Le problème est qu'il faut 1:10 minutes pour get 22 […]

Sous-requête non corrélée SQL Server très lente

J'ai une sous-requête simple et non corrélée qui fonctionne très mal sur SQL Server. Je ne suis pas très expérimenté dans la lecture des plans d'exécution, mais il semble que la requête interne soit exécutée une fois pour chaque ligne de la requête externe, même si les résultats sont les mêmes à chaque fois. Que […]

Base de données verrouillée (ou lente) avec Linq To Entities et Stored Procedures

J'utilise Linq To Entities (L2E) UNIQUEMENT pour mapper toutes mes procédures stockées dans ma database pour une traduction facile en objects. Mes données ne sont pas vraiment sensibles (donc je considère le niveau d'isolement "READ UNCOMMITED" partout). J'ai plusieurs tables avec des millions de lignes. J'ai le site Web et un tas de scripts utilisant […]

Différence entre select d'une partition entière ou d'une table avec un petit set de données?

Je suis nouveau au partitionnement. Y aurait-il une différence de performance entre select * from my_partitionedData where date = '20110523' et select * from my_Data where date = '20110523' où my_partitionedData est une table partitionnée par date de 1 jour et my_Data est une table qui n'a que des données pour '20110523' et les deux […]