Exécuter SQL à partir de la mémoire plus rapidement que SSD?

12

Récemment, nous avons eu des problèmes avec notre base de données Oracle se bloquant sur 1 requête que nous connaissons jusqu'à présent.

Je vais donner une ventilation de ce qui se passe, mais cela n'a vraiment pas grand-chose à voir avec ma question, mais je suis ouvert aux suggestions.

Par intermittence, sans dire quand cela se produira, s'est produit 4 fois au cours du mois dernier, un utilisateur cliquera sur quelque chose dans l'application. Ce sur quoi l'utilisateur clique est encore inconnu. Lorsque vous cliquez, il exécutera une requête sur la base de données qui générera environ 700 000 lignes.

J'ai vérifié la table sur laquelle la requête est exécutée et les index semblent bons.

La base de données est de 60 Go, il y a 32 Go sur le serveur.

Des journaux sur le serveur de base de données, je vois des E / S élevées, mais le CPU et la RAM restent les mêmes.

Sur le serveur d'applications, le CPU monte à environ 75%. Je peux trouver le processus de travail, trouver le PID, mais lorsque je tue le PID associé au processus de travail, le processeur descendra brièvement, puis remontera à droite.

De même, le recyclage du pool d'applications et le redémarrage d'IIS font la même chose, le processeur descendra brièvement, puis remontera à droite.

La seule chose qui peut être faite pour remettre le serveur en ligne est un redémarrage.

Donc, ma suggestion SI cette requête est à l'origine des blocages, la mémoire peut-elle être augmentée sur la boîte pour permettre à la base de données d'être mise en cache et à court de mémoire. J'ai entendu cela une fois mais je ne sais pas si c'est vrai.

Le stockage est un HP PAR 3 à 3 niveaux et la base de données vit à peu près au niveau SSD.

Quel est SSD ou mémoire plus rapide

Anthony Fornito
la source

Réponses:

6

Quel est SSD ou mémoire plus rapide

La DRAM est plus rapide que le flash NAND. Un accès RAM est de l'ordre de 100 ns, tandis qu'un SSD aléatoire lit environ 16 000 ns. Numéros de latence que chaque programmeur devrait connaître

Vous devez faire une analyse systématique de ce qui se passe et pourquoi. Ne changez pas les choses simplement parce que vous avez entendu quelque chose de seconde sur un autre système. Trouvez quel est le problème sur ce système.

Heureusement, les systèmes SGBD ont généralement des outils de performance. Oracle et les autres SGBDR doivent EXPLAIN PLANafficher des analyses complètes et d'autres inefficacités. Les requêtes peuvent être terriblement performantes même avec des index. Il existe également des rapports sur les performances du système comme Oracle AWR pour trouver les goulots d'étranglement. Si vous souhaitez en savoir plus sur les performances de la base de données, vous pouvez également demander à notre site frère, /dba//

John Mahowald
la source