最新的Microsoft Developing SQL Databases (70-762 Deutsch Version) - 70-762 Deutsch免費考試真題
Sie verwenden Microsoft SQL Server-Profil, um eine Abfrage mit dem Namen Abfrage1 auszuwerten. Der Profiler-Bericht gibt die folgenden Probleme an:
* Auf jeder Ebene des Abfrageplans wird eine geringe Gesamtanzahl von Zeilen verarbeitet.
* Die Abfrage verwendet viele Operationen. Dies führt zu hohen Gesamtkosten für die Abfrage.
Sie müssen die Informationen identifizieren, die für das Optimierungsprogramm nützlich sind.
Was tun?
* Auf jeder Ebene des Abfrageplans wird eine geringe Gesamtanzahl von Zeilen verarbeitet.
* Die Abfrage verwendet viele Operationen. Dies führt zu hohen Gesamtkosten für die Abfrage.
Sie müssen die Informationen identifizieren, die für das Optimierungsprogramm nützlich sind.
Was tun?
正確答案: B
說明:(僅 Fast2test 成員可見)
Sie müssen eine Funktion erstellen, die die folgenden Anforderungen erfüllt:
* Gibt mehrere Zeilen zurück
* Optimiert die Leistung der Abfrage innerhalb der Funktion
Wie soll die Transact-SQL-Anweisung ausgefüllt werden? Ziehen Sie zum Beantworten die entsprechenden Transact-SQL-Segmente an die richtigen Positionen. Jedes Transact-SQL-Segment kann einmal, mehrmals oder gar nicht verwendet werden. Möglicherweise müssen Sie die geteilte Leiste zwischen den Fenstern ziehen oder einen Bildlauf durchführen, um den Inhalt anzuzeigen.

* Gibt mehrere Zeilen zurück
* Optimiert die Leistung der Abfrage innerhalb der Funktion
Wie soll die Transact-SQL-Anweisung ausgefüllt werden? Ziehen Sie zum Beantworten die entsprechenden Transact-SQL-Segmente an die richtigen Positionen. Jedes Transact-SQL-Segment kann einmal, mehrmals oder gar nicht verwendet werden. Möglicherweise müssen Sie die geteilte Leiste zwischen den Fenstern ziehen oder einen Bildlauf durchführen, um den Inhalt anzuzeigen.

正確答案:

Explanation

Sie überwachen eine Microsoft Azure SQL-Datenbank.
Die Datenbank weist einen hohen CPU-Verbrauch auf.
Sie müssen ermitteln, welche Abfrage die kumulativste CPU verwendet.
Wie soll die Transact-SQL-Anweisung ausgefüllt werden? Ziehen Sie zum Beantworten die entsprechenden Transact-SQL-Segmente an die richtigen Positionen. Jedes Transact-SQL-Segment kann einmal, mehrmals oder gar nicht verwendet werden.
Möglicherweise müssen Sie die geteilte Leiste zwischen den Fenstern ziehen oder einen Bildlauf durchführen, um den Inhalt anzuzeigen.

Die Datenbank weist einen hohen CPU-Verbrauch auf.
Sie müssen ermitteln, welche Abfrage die kumulativste CPU verwendet.
Wie soll die Transact-SQL-Anweisung ausgefüllt werden? Ziehen Sie zum Beantworten die entsprechenden Transact-SQL-Segmente an die richtigen Positionen. Jedes Transact-SQL-Segment kann einmal, mehrmals oder gar nicht verwendet werden.
Möglicherweise müssen Sie die geteilte Leiste zwischen den Fenstern ziehen oder einen Bildlauf durchführen, um den Inhalt anzuzeigen.

正確答案:

Explanation

Box 1: sys.dm_exec_query_stats
sys.dm_exec_query_stats returns aggregate performance statistics for cached query plans in SQL Server.
Box 2: highest_cpu_queries.total_worker_time DESC
Sort on total_worker_time column
Example: The following example returns information about the top five queries ranked by average CPU time.
This example aggregates the queries according to their query hash so that logically equivalent queries are grouped by their cumulative resource consumption.
USE AdventureWorks2012;
GO
SELECT TOP 5 query_stats.query_hash AS "Query Hash",
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time", MIN(query_stats.statement_text) AS "Statement Text" FROM (SELECT QS.*, SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1, ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(ST.text) ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle)as ST) as query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
References: https://msdn.microsoft.com/en-us/library/ms189741.aspx
Hinweis: Diese Frage ist Teil einer Reihe von Fragen, die dasselbe Szenario verwenden. Zur Vereinfachung wird das Szenario in jeder Frage wiederholt. Jede Frage stellt ein anderes Ziel und eine andere Antwortauswahl dar, aber der Text des Szenarios ist in jeder Frage dieser Reihe genau gleich.
Sie haben eine Datenbank, die die folgenden Tabellen enthält: BlogCategory, BlogEntry, ProductReview, Product und SalesPerson. Die Tabellen wurden mit den folgenden Transact SQL-Anweisungen erstellt:

Sie müssen die ProductReview-Tabelle ändern, um die folgenden Anforderungen zu erfüllen:
* Die Tabelle muss auf die ProductID-Spalte in der Product-Tabelle verweisen
* Vorhandene Datensätze in der ProductReview-Tabelle müssen nicht mit der Product-Tabelle validiert werden.
* Das Löschen von Datensätzen in der Product-Tabelle ist nicht zulässig, wenn die ProductReview-Tabelle auf Datensätze verweist.
* Änderungen an Datensätzen in der Product-Tabelle müssen in die ProductReview-Tabelle übernommen werden.
Sie haben auch die folgenden Datenbanktabellen: Order, ProductTypes und SalesHistory. Die Transact-SQL-Anweisungen für diese Tabellen sind nicht verfügbar.
Sie müssen die Orders-Tabelle ändern, um die folgenden Anforderungen zu erfüllen:
* Erstellen Sie neue Zeilen in der Tabelle, ohne der Tabelle INSERT-Berechtigungen zu erteilen.
* Benachrichtigen Sie den Verkäufer, der eine Bestellung aufgibt, ob die Bestellung abgeschlossen wurde oder nicht.
Sie müssen der SalesHistory-Tabelle die folgenden Einschränkungen hinzufügen:
* Eine Einschränkung für die Spalte "SaleID", mit der das Feld als Datensatzkennung verwendet werden kann
* Eine Konstante, die die ProductID-Spalte verwendet, um auf die Product-Spalte der ProductTypes-Tabelle zu verweisen
* Eine Einschränkung für die CategoryID-Spalte, die eine Zeile mit einem Nullwert in der Spalte zulässt
* Eine Einschränkung, die die Spalte "SalePrice" auf Werte beschränkt, die größer als vier Benutzer der Finanzabteilung sind, muss in der Lage sein, Daten aus der Tabelle "SalesHistory" für Verkäufer abzurufen, bei denen der Wert der Spalte "SalesYTD" über einem bestimmten Schwellenwert liegt.
Sie planen, eine speicheroptimierte Tabelle mit dem Namen SalesOrder zu erstellen. Die Tabelle muss folgende Anforderungen erfüllen:
* Die Tabelle muss 10 Millionen eindeutige Kundenaufträge enthalten.
* Die Tabelle muss Prüfpunkte verwenden, um E / A-Vorgänge zu minimieren, und darf keine Transaktionsprotokollierung verwenden.
* Datenverlust ist akzeptabel.
Die Leistung für Abfragen in der SalesOrder-Tabelle, die Where-Klauseln mit exakten Gleichheitsoperationen verwenden, muss optimiert werden.
Sie müssen eine gespeicherte Prozedur mit dem Namen spDeleteCategory erstellen, um Datensätze in der Datenbank zu löschen. Die gespeicherte Prozedur muss die folgenden Anforderungen erfüllen:
* Löschen Sie Datensätze sowohl in der BlogEntry- als auch in der BlogCategory-Tabelle, wobei CategoryId dem Parameter entspricht
@Kategorie ID.
* Vermeiden Sie das Sperren der gesamten Tabelle, wenn Sie Datensätze aus der BlogCategory-Tabelle löschen.
* Wenn während eines Löschvorgangs in einer der Tabellen ein Fehler auftritt, müssen alle Änderungen zurückgesetzt werden, andernfalls sollten alle Änderungen festgeschrieben werden.
Wie sollten Sie den Vorgang abschließen? Wählen Sie zum Beantworten die entsprechenden Transact-SQL-Segmente im Antwortbereich aus.

Sie haben eine Datenbank, die die folgenden Tabellen enthält: BlogCategory, BlogEntry, ProductReview, Product und SalesPerson. Die Tabellen wurden mit den folgenden Transact SQL-Anweisungen erstellt:

Sie müssen die ProductReview-Tabelle ändern, um die folgenden Anforderungen zu erfüllen:
* Die Tabelle muss auf die ProductID-Spalte in der Product-Tabelle verweisen
* Vorhandene Datensätze in der ProductReview-Tabelle müssen nicht mit der Product-Tabelle validiert werden.
* Das Löschen von Datensätzen in der Product-Tabelle ist nicht zulässig, wenn die ProductReview-Tabelle auf Datensätze verweist.
* Änderungen an Datensätzen in der Product-Tabelle müssen in die ProductReview-Tabelle übernommen werden.
Sie haben auch die folgenden Datenbanktabellen: Order, ProductTypes und SalesHistory. Die Transact-SQL-Anweisungen für diese Tabellen sind nicht verfügbar.
Sie müssen die Orders-Tabelle ändern, um die folgenden Anforderungen zu erfüllen:
* Erstellen Sie neue Zeilen in der Tabelle, ohne der Tabelle INSERT-Berechtigungen zu erteilen.
* Benachrichtigen Sie den Verkäufer, der eine Bestellung aufgibt, ob die Bestellung abgeschlossen wurde oder nicht.
Sie müssen der SalesHistory-Tabelle die folgenden Einschränkungen hinzufügen:
* Eine Einschränkung für die Spalte "SaleID", mit der das Feld als Datensatzkennung verwendet werden kann
* Eine Konstante, die die ProductID-Spalte verwendet, um auf die Product-Spalte der ProductTypes-Tabelle zu verweisen
* Eine Einschränkung für die CategoryID-Spalte, die eine Zeile mit einem Nullwert in der Spalte zulässt
* Eine Einschränkung, die die Spalte "SalePrice" auf Werte beschränkt, die größer als vier Benutzer der Finanzabteilung sind, muss in der Lage sein, Daten aus der Tabelle "SalesHistory" für Verkäufer abzurufen, bei denen der Wert der Spalte "SalesYTD" über einem bestimmten Schwellenwert liegt.
Sie planen, eine speicheroptimierte Tabelle mit dem Namen SalesOrder zu erstellen. Die Tabelle muss folgende Anforderungen erfüllen:
* Die Tabelle muss 10 Millionen eindeutige Kundenaufträge enthalten.
* Die Tabelle muss Prüfpunkte verwenden, um E / A-Vorgänge zu minimieren, und darf keine Transaktionsprotokollierung verwenden.
* Datenverlust ist akzeptabel.
Die Leistung für Abfragen in der SalesOrder-Tabelle, die Where-Klauseln mit exakten Gleichheitsoperationen verwenden, muss optimiert werden.
Sie müssen eine gespeicherte Prozedur mit dem Namen spDeleteCategory erstellen, um Datensätze in der Datenbank zu löschen. Die gespeicherte Prozedur muss die folgenden Anforderungen erfüllen:
* Löschen Sie Datensätze sowohl in der BlogEntry- als auch in der BlogCategory-Tabelle, wobei CategoryId dem Parameter entspricht
@Kategorie ID.
* Vermeiden Sie das Sperren der gesamten Tabelle, wenn Sie Datensätze aus der BlogCategory-Tabelle löschen.
* Wenn während eines Löschvorgangs in einer der Tabellen ein Fehler auftritt, müssen alle Änderungen zurückgesetzt werden, andernfalls sollten alle Änderungen festgeschrieben werden.
Wie sollten Sie den Vorgang abschließen? Wählen Sie zum Beantworten die entsprechenden Transact-SQL-Segmente im Antwortbereich aus.

正確答案:

Explanation
Box 1: set implict_transactions on
Box 2: ROWLOCK
Requirement: Avoid locking the entire table when deleting records from the BlogCategory table ROWLOCK specifies that row locks are taken when page or table locks are ordinarily taken. When specified in transactions operating at the SNAPSHOT isolation level, row locks are not taken unless ROWLOCK is combined with other table hints that require locks, such as UPDLOCK and HOLDLOCK.
Box 3: COMMIT
Box 4: ROLLBACK
Hinweis: Diese Frage ist Teil einer Reihe von Fragen, die dasselbe Szenario darstellen. Jede Frage in der Reihe enthält eine eindeutige Lösung, mit der die angegebenen Ziele erreicht werden können. Einige Fragensätze haben möglicherweise mehr als eine richtige Lösung, während andere möglicherweise keine richtige Lösung haben.
Nachdem Sie eine Frage in diesem Abschnitt beantwortet haben, können Sie NICHT mehr darauf zurückkommen. Infolgedessen werden diese Fragen nicht im Überprüfungsbildschirm angezeigt.
Sie haben eine Datenbank mit 130 GB und 500 Millionen Datenzeilen.
Granulare Transaktionen und Massen-Batch-Datenimporte ändern die Datenbank im Laufe des Tages häufig.
Microsoft SQL Server Reporting Services (SSRS) verwendet die Datenbank zum Generieren verschiedener Berichte mithilfe mehrerer Filter.
Sie stellen fest, dass einige Berichte eine Zeitüberschreitung aufweisen, bevor sie abgeschlossen sind.
Sie müssen die Wahrscheinlichkeit verringern, dass bei den Berichten eine Zeitüberschreitung auftritt.
Lösung: Sie erhöhen die Anzahl der Protokolldateien für die Datenbank. Sie speichern die Protokolldateien auf mehreren Datenträgern.
Erfüllt dies das Ziel?
Nachdem Sie eine Frage in diesem Abschnitt beantwortet haben, können Sie NICHT mehr darauf zurückkommen. Infolgedessen werden diese Fragen nicht im Überprüfungsbildschirm angezeigt.
Sie haben eine Datenbank mit 130 GB und 500 Millionen Datenzeilen.
Granulare Transaktionen und Massen-Batch-Datenimporte ändern die Datenbank im Laufe des Tages häufig.
Microsoft SQL Server Reporting Services (SSRS) verwendet die Datenbank zum Generieren verschiedener Berichte mithilfe mehrerer Filter.
Sie stellen fest, dass einige Berichte eine Zeitüberschreitung aufweisen, bevor sie abgeschlossen sind.
Sie müssen die Wahrscheinlichkeit verringern, dass bei den Berichten eine Zeitüberschreitung auftritt.
Lösung: Sie erhöhen die Anzahl der Protokolldateien für die Datenbank. Sie speichern die Protokolldateien auf mehreren Datenträgern.
Erfüllt dies das Ziel?
正確答案: A
說明:(僅 Fast2test 成員可見)
Hinweis: Diese Frage ist Teil einer Reihe von Fragen, die dasselbe Szenario darstellen. Jede Frage in der Reihe enthält eine eindeutige Lösung. Stellen Sie fest, ob die Lösung die angegebenen Ziele erfüllt.
Sie haben eine Datenbank, die eine Tabelle mit dem Namen Employees enthält. In der Tabelle werden Informationen zu den Mitarbeitern Ihres Unternehmens gespeichert.
Sie müssen die folgenden Geschäftsregeln implementieren und durchsetzen:
- Begrenzen Sie die Werte, die von der Spalte Gehalt akzeptiert werden.
- Verhindern Sie die Eingabe von Gehältern unter 15.000 USD und über 300.000 USD.
- Ermitteln Sie gültige Werte mithilfe logischer Ausdrücke.
- Überprüfen Sie die Datenintegrität nicht, wenn Sie DELETE-Anweisungen ausführen.
Lösung: Sie implementieren eine Prüfbedingung für die Tabelle.
Entspricht die Lösung dem Ziel?
Sie haben eine Datenbank, die eine Tabelle mit dem Namen Employees enthält. In der Tabelle werden Informationen zu den Mitarbeitern Ihres Unternehmens gespeichert.
Sie müssen die folgenden Geschäftsregeln implementieren und durchsetzen:
- Begrenzen Sie die Werte, die von der Spalte Gehalt akzeptiert werden.
- Verhindern Sie die Eingabe von Gehältern unter 15.000 USD und über 300.000 USD.
- Ermitteln Sie gültige Werte mithilfe logischer Ausdrücke.
- Überprüfen Sie die Datenintegrität nicht, wenn Sie DELETE-Anweisungen ausführen.
Lösung: Sie implementieren eine Prüfbedingung für die Tabelle.
Entspricht die Lösung dem Ziel?
正確答案: B
說明:(僅 Fast2test 成員可見)
Sie führen die folgende Transact-SQL-Anweisung aus:

Es gibt mehrere eindeutige OrderID-Werte. Die meisten UnitPrice-Werte für dieselbe Bestellung sind unterschiedlich.
Sie müssen eine einzelne Indexsuchabfrage erstellen, die die folgenden Operatoren nicht verwendet:
*Verschachtelte Schleife
*Sortieren
* Schlüsselsuche

Es gibt mehrere eindeutige OrderID-Werte. Die meisten UnitPrice-Werte für dieselbe Bestellung sind unterschiedlich.
Sie müssen eine einzelne Indexsuchabfrage erstellen, die die folgenden Operatoren nicht verwendet:
*Verschachtelte Schleife
*Sortieren
* Schlüsselsuche
正確答案: C
Sie müssen Trigger implementieren, um die Reaktionen auf die folgenden Ereignisse zu automatisieren:
* SQL Server-Anmeldungen
* Änderungen des Datenbankschemas
* Datenbank-Updates
Welche Triggertypen sollten Sie verwenden? Ziehen Sie zur Beantwortung die entsprechenden Auslösertypen in die entsprechenden Szenarien.
Jeder Triggertyp kann einmal, mehrmals oder überhaupt nicht verwendet werden. Möglicherweise müssen Sie die geteilte Leiste zwischen den Fenstern ziehen oder einen Bildlauf durchführen, um den Inhalt anzuzeigen.
HINWEIS: Jede richtige Auswahl ist einen Punkt wert.

* SQL Server-Anmeldungen
* Änderungen des Datenbankschemas
* Datenbank-Updates
Welche Triggertypen sollten Sie verwenden? Ziehen Sie zur Beantwortung die entsprechenden Auslösertypen in die entsprechenden Szenarien.
Jeder Triggertyp kann einmal, mehrmals oder überhaupt nicht verwendet werden. Möglicherweise müssen Sie die geteilte Leiste zwischen den Fenstern ziehen oder einen Bildlauf durchführen, um den Inhalt anzuzeigen.
HINWEIS: Jede richtige Auswahl ist einen Punkt wert.

正確答案:

Explanation

Box 1: LOGON
Logon triggers fire stored procedures in response to a LOGON event. This event is raised when a user session is established with an instance of SQL Server.
Box 2: INSTEAD OF INSERT
An "INSTEAD of trigger" is executed instead of the original operation, and not combining with the operation.
INSTEAD OF triggers override the standard actions of the triggering statement. It can be used to bypass the statement and execute a whole different statement, or just help us check and examine the data before the action is done.
Box 3: DDL
DDL statements (CREATE or ALTER primarily) issued either by a particular schema/user or by any schema/user in the database Note:
You can write triggers that fire whenever one of the following operations occurs:
* DML statements (INSERT, UPDATE, DELETE) on a particular table or view, issued by any user
* DDL statements (CREATE or ALTER primarily) issued either by a particular schema/user or by any schema/user in the database
* Database events, such as logon/logoff, errors, or startup/shutdown, also issued either by a particular schema/user or by any schema/user in the database References:
https://docs.oracle.com/cd/B19306_01/server.102/b14220/triggers.htm
https://social.technet.microsoft.com/wiki/contents/articles/28152.t-sql-instead-of-triggers.aspx
https://docs.microsoft.com/en-us/sql/relational-databases/triggers/logon-triggers?view=sql-server-2017