La création d'objets tels que les tables et les index sont assez essentielles, même si le code doit être autorisé ou créé par le DBA. Quelles autres zones normalement réalisées par DBAS devraient être au courant du développeur accompli? P>
7 Réponses :
Optimisation. Votre code est toujours utilisé comme peu de ressources que possible. P>
J'aime cette réponse! (Bien que je puisse penser à des scénarios où l'utilisation des ressources n'est pas une question primordiale)
Un développeur est responsable de faire tout ce qui rend son code Ceci est bien sûr incluant la création d'index et de tables. P>
Faire un A Il ne devrait pas être une seule personne pour rendre les décicions qui affectent les performances de l'ensemble du système de base de données. P>
Bases de données relationnelles, comme pour l'instant, ne sont pas encore dans cet état qui permettrait de fractionnement de la responsabilité afin que les développeurs puissent rendre les requêtes droite forte> et le S'il y a un manque de ressources (par exemple, un index rend une requête rapide à l'expence de certains Maintenant, c'est une période de prise de décision. De quoi avons-nous besoin de plus, de requête rapide ou d'un insert rapide? P>
Cette décision doit être faite par le gestionnaire de programme (et non le et lorsque la décision est prise, le développeur doit recevoir la nouvelle tâche: "Faire la requête Un développeur doit savoir tout sur comment fonctionne une base de données, quand elle fonctionne normalement forte>. P>
A Ce dernier inclut la possibilité de faire une sauvegarde, de la capacité de restaurer à partir d'une sauvegarde et de sa capacité à détecter et à signaler une conflit de ressources. P> dba code> responsable des index est une mauvaise idée. Et si le code fonctionne lentement? Qui doit être blâmé: un développeur avec le mauvais code ou un
dba code> avec un mauvais index? P>
dba code> doit véhiculer des opérations de support de base de données telles que la fabrication de sauvegardes, la construction de l'infrastructure, etc., et signaler le manque de ressources. P>
dba code> pourraient les faire
DML code> étant lent), cela devrait être signalé fort> par un DBA, pas fixe fort>. P>
dba code> ou le développeur). P>
SELECT CODE> doit être aussi rapide que possible, en tenant compte que vous n'avez pas cet index" . Ou "faire une requête code> insérer code> doit être aussi rapide que possible, en prenant en compte que vous aurez cet index". P>
dba code> devrait savoir tout sur Comment faire une base de données pour fonctionner normalement forte>. p>
Thx pour votre contribution. Je peux penser à de nombreux scénarios où le DBA est responsable de l'optimisation de la requête - les feuilles de développeur, la structure de la DB change, la fonctionnalité est modifiée, de nouveaux index sont obligatoires, etc.
DBMARCOS99 CODE>: Tout ce que vous venez de décrire (sauf lorsque les feuilles de développeur) implique une prise de décision. Ce n'est pas la responsabilité de DBA CODE> DBA CODE>, il s'agit de la responsabilité du responsable du programme.
@Quassnoi: Je suis en désaccord; Être un DBA est "tout" sur la prise de décision et la responsabilité. Vous ne pouvez pas courir chaque décision de chaque minute par un responsable de programme, rien ne sera jamais fait. Business, qui est ce que nous sommes tous après tout, consiste à fournir des résultats et c'est ce que le rôle de DBA facilite.
@John code>: suppose une situation. Un rapport de base de données, qui repose sur une certaine requête, est lent. Ce rapport peut être effectué plus rapidement en créant un index, mais cela rendra
DML code> sur la table concernée plus lentement et le programme sera moins sensible aux utilisateurs qui le remplissent de données. Est-ce une tâche code> dba code> pour prendre cette décision?
Malheureusement, je ne peux pas vous fournir une réponse définitive en raison de l'exemple bizarrement façonné. À mon avis, le choix proposé ne surgirait même pas, étant donné qu'il y aurait potentiellement une foule de solutions viables et alternatives.
@JOHN CODE>: Quelle décision doit-elle
dba code> faire alors, à votre avis? Pourriez-vous fournir votre propre exemple de "décision à une seule minute" qui affecte les utilisateurs finaux b> (cette ligne est importante) mais doit être faite par un
dba code> plutôt qu'un développeur ou un responsable de programme?
On dirait que le chef de projet détermine les responsabilités du programmeur et du DBA, puis devient l'arbitre quand ils ne peuvent pas s'entendre?
@Guinnessfan Code>: Dans
Joel Spolsky CODE> SOI (que je partage), le responsable du programme devrait, avec d'autres choses, "coordonnées des équipes": joelonsoftware.com/items/2009/03/09.html Malheureusement, dans le monde actuel, le
ui CODE> Les applications (qu'il écrit surtout) peut généralement être développée de manière absolument optimale, tandis que les bases de données ne peuvent être développées qu'à Pareto Optimal Way (lorsque vous ne pouvez pas améliorer une chose sans s'aggraver une autre). Je pense que Pareto optimisant le système est certainement la tâche d'un gestionnaire de programme. Cela peut être fait à la fois en déterminant les responsabilités et ...
... et par arbitre, bien que la première façon est bien sûr mieux.
Les développeurs doivent établir des aspects logiques des index (quelles colonnes sont indexées, unicité, structure le cas échéant). Les DBA devraient être responsables des aspects physiques (par exemple, lieu de fichier / disque, facteurs de croissance, etc.).
Les INS et les aboutissants du stockage et d'optimisation de la base de données sont énormes. Savoir comment indexer des tables d'indexation et de partition est une connaissance inestimable. P>
Aussi, comment lire un plan d'exécution de la requête. SQL est un tel langage cool en ce que cela vous dira exactement em> comment ça va courir votre code, tant que vous le demandez gentiment. Ceci est absolument essentiel pour optimiser votre code et trouver des goulots d'étranglement. P>
Maintenance de la base de données (sauvegardes, fichiers rétrécissants, etc.) est toujours important de conserver votre serveur en douceur. C'est quelque chose qui est souvent négligé aussi. P>
Les développeurs doivent tout savoir sur les déclencheurs et les procédures stockées - obtenir la base de données pour travailler pour vous. Ces choses peuvent aider à automatiser tant de tâches et souvent aux développeurs les surplombent et tentent de gérer tout le côté de l'application, quand ils devraient vraiment être traités par quelque chose qui pense à des ensembles. P>
Ce qui m'amène au point le plus important, les développeurs de base de données doivent penser dans des ensembles. J'entends souvent: "Pour chaque rangée, je veux ..." et c'est généralement une alarme dans ma tête. Vous devriez penser à la manière dont l'ensemble interagit et les actions que vous souhaitez prendre sur des colonnes entières. P>
La meilleure pratique des déclencheurs n'est jamais utilise
Une chose qui me ressent actuellement, c'est comment naviguer et comprendre les informations que les tables de base de données "système" / vues vous donne. Par exemple. Dans SQL Server, les vues sous la base de données principale. Ces points de vue contiennent des informations telles que des connexions actuelles, des listes de tables et de partitions, etc., qui sont toutes des éléments utiles pour essayer de suivre des éléments tels que les connexions suspendues ou si les utilisateurs sont actuellement liés, etc. P>
relations de vos tables. Vous devez toujours avoir une impression récente et une copie soft de votre base de données. Vous devez connaître les clés principales, les clés étrangères, les colonnes requises et les colonnes automatiques, sans cela, je pense que vous ne pouvez pas écrire des requêtes efficaces ni vous assurer que votre base de données ne porte que ce dont elle a besoin. p>
Je pense que tout le monde l'a couvert. p>
Je recommanderais de développer une compréhension de l'architecture de sécurité pour les SGBD pertinents. P>
Cela pourrait faciliter votre développement du code sécurisé. P>
avec SQL Server spécifiquement à l'esprit par exemple: p>
En règle générale, plus vous comprenez à propos du moteur avec lequel vous travaillez, plus vous pouvez vous presser de la performance. P>
C'est un bel exemple de ce que je considère comme vraiment i> un dba code> que les développeurs doivent aussi comprendre. +1.
Avoir une bonne compréhension de l'architecture de votre système de base de données sera certainement utile. Pouvez-vous dessiner un diagramme par cœur pour montrer des composants de votre SGBD et de leurs interactions? P>
Les développeurs devraient (et presque toujours faire) savoir plus que les DBA.
S'il vous plaît faire cela un wiki communautaire.
Avec respect, Neil, je ne suis pas d'accord avec ça. Les DBA ont accès à des runstat réels ou à des plans d'exécution, ils sont donc savoir i> ce que sont les goulots d'étranglement. Les développeurs supposent simplement basé sur des données attendues. Parfois, ces hypothèses sont correctes, parfois pas. Mais ils sont des hypothèses i>.
@pax code>: Les runstats réels doivent être donnés aux développeurs tous les matins à regarder. Si les développeurs fonctionnent sous une sorte d'hypothèses «hypothèses basées sur des données attendues» pendant plus d'une journée, car les données réelles sont disponibles, il y a quelque chose qui ne va pas avec la gestion du programme dans cette société.
@Pax'ver a toujours eu accès à tous les outils que les dabas avaient, ainsi que des outils que j'ai écrits moi-même.
@Neil, alors vous êtes un demi-dba et mon point est toujours debout :-)
@Pax c'est la lutte contre la discussion, monsieur.
@Neil: Si cela était vrai, ma charge de travail de moitié ;-)