Eine einfache select-Anweisung ist die Einnahme von zu viel Zeit

Die folgende, einfache select-Anweisung ist, ist zu viel Zeit zum ausführen:

select * from sys_letter_intid

sys_letter_intid Tisch Struktur:

CREATE TABLE [dbo].[sys_letter_intid](
[intid] [int] NULL,
[id] [int] IDENTITY(1,1) NOT NULL,
[misc_text] [nvarchar](50) NULL,
[misc_Date] [datetime] NULL,
[misc_amount] [money] NULL
) ON [PRIMARY]

Nicht sicher über die Anzahl der Zeilen, weil auch SELECT COUNT(*) FROM sys_letter_intid und select top 1 * from sys_letter_intid, um durch intid desc Abfrage ist zu viel Zeit, um Sie auszuführen.

  • Index-Space - 0.023 MB
  • Zeilenanzahl - 1
  • Daten Raum - 0.008 MB

sp_lock gibt die folgende Ausgabe:

spid   dbid   ObjId       IndId  Type Resource                         Mode     Status
------ ------ ----------- ------ ---- -------------------------------- -------- ------
52     8      0           0      DB                                    S        GRANT
54     8      1185439297  0      TAB                                   IX       GRANT
54     8      0           0      DB                                    S        GRANT
55     5      0           0      DB                                    S        GRANT
56     8      0           0      DB                                    S        GRANT
56     8      2049442375  1      KEY  (716bd5e0da25)                   X        GRANT
56     8      2049442375  0      TAB                                   IX       GRANT
56     8      2049442375  1      PAG  1:29168                          IX       GRANT
58     8      0           0      DB                                    S        GRANT
60     1      2107154552  0      TAB                                   IS       GRANT
60     8      0           0      DB                                    S        GRANT
61     8      0           0      DB                                    S        GRANT
61     8      2049442375  1      PAG  1:29168                          IS       GRANT
61     8      2049442375  1      KEY  (716bd5e0da25)                   S        WAIT
61     8      2049442375  0      TAB                                   IS       GRANT
62     8      0           0      DB                                    S        GRANT
63     5      0           0      DB                                    S        GRANT
64     8      0           0      DB                                    S        GRANT
66     8      0           0      DB                                    S        GRANT

SP_Who2 gibt die folgende Ausgabe:

SPID  Status                         Login                                                                          HostName        BlkBy DBName                       Command          CPUTime DiskIO LastBatch      ProgramName                                                        SPID  REQUESTID
----- ------------------------------ ------------------------------------------------------------------------------ --------------- ----- ---------------------------- ---------------- ------- ------ -------------- ------------------------------------------------------------------ ----- ---------
1     BACKGROUND                     sa                                                                               .               .   NULL                         LOG WRITER       234     0      02/27 03:22:02                                                                    1     0    
2     BACKGROUND                     sa                                                                               .               .   NULL                         LAZY WRITER      608     0      02/27 03:22:02                                                                    2     0    
3     BACKGROUND                     sa                                                                               .               .   NULL                         RECOVERY WRITER  93      0      02/27 03:22:02                                                                    3     0    
4     BACKGROUND                     sa                                                                               .               .   NULL                         LOCK MONITOR     0       0      02/27 03:22:02                                                                    4     0    
5     BACKGROUND                     sa                                                                               .               .   master                       SIGNAL HANDLER   0       0      02/27 03:22:02                                                                    5     0    
6     BACKGROUND                     sa                                                                               .               .   NULL                         XE DISPATCHER    62      0      02/27 03:22:02                                                                    6     0    
7     BACKGROUND                     sa                                                                               .               .   NULL                         RESOURCE MONITOR 780     0      02/27 03:22:02                                                                    7     0    
8     BACKGROUND                     sa                                                                               .               .   NULL                         XE TIMER         0       0      02/27 03:22:02                                                                    8     0    
9     BACKGROUND                     sa                                                                               .               .   master                       BRKR TASK        0       0      02/27 03:22:40                                                                    9     0    
10    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      02/27 03:22:03                                                                    10    0    
11    BACKGROUND                     sa                                                                               .               .   master                       TRACE QUEUE TASK 0       0      02/27 03:22:03                                                                    11    0    
12    BACKGROUND                     sa                                                                               .               .   NULL                         SYSTEM_HEALTH_MO 0       0      02/27 03:22:04                                                                    12    0    
13    BACKGROUND                     sa                                                                               .               .   NULL                         RECEIVE          312     2      02/27 03:22:04                                                                    13    0    
14    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       159    03/12 22:46:23                                                                    14    0    
15    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       1      03/12 22:46:23                                                                    15    0    
16    BACKGROUND                     sa                                                                               .               .   master                       CHECKPOINT       109     159    02/27 03:22:34                                                                    16    0    
17    BACKGROUND                     sa                                                                               .               .   master                       TASK MANAGER     0       0      02/27 03:22:34                                                                    17    0    
18    BACKGROUND                     sa                                                                               .               .   NULL                         UNKNOWN TOKEN    0       0      02/27 03:23:35                                                                    18    0    
19    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       4      03/12 22:36:22                                                                    19    0    
20    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      03/12 22:46:33                                                                    20    0    
21    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      03/12 22:33:17                                                                    21    0    
22    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      03/12 22:46:33                                                                    22    0    
23    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      03/12 22:50:39                                                                    23    0    
24    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      03/12 22:43:18                                                                    24    0    
25    BACKGROUND                     sa                                                                               .               .   master                       BRKR EVENT HNDLR 0       41     02/27 03:22:40                                                                    25    0    
26    BACKGROUND                     sa                                                                               .               .   master                       BRKR TASK        218     0      02/27 03:22:40                                                                    26    0    
27    BACKGROUND                     sa                                                                               .               .   master                       BRKR TASK        31      0      02/27 03:22:40                                                                    27    0    
28    BACKGROUND                     sa                                                                               .               .   master                       BRKR TASK        0       0      02/27 03:22:40                                                                    28    0    
29    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       7      03/12 22:50:39                                                                    29    0    
30    sleeping                       sa                                                                               .               .   master                       TASK MANAGER     0       0      03/12 22:50:39                                                                    30    0    
51    sleeping                       admin                                                                          CGVAK-328         .   master                       AWAITING COMMAND 157     283    03/13 01:15:51 Microsoft SQL Server Management Studio                             51    0    
52    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 16      1      03/13 01:33:08 Microsoft SQL Server Management Studio - Query                     52    0    
53    sleeping                       NT SERVICE\ReportServer$MSSQLSERVER2012                                        WIN-07VQ7EIB4L1   .   ReportServer$MSSQLSERVER2012 AWAITING COMMAND 0       0      03/13 01:40:09 Report Server                                                      53    0    
54    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 218     0      03/13 01:28:50 jTDS                                                               54    0    
55    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 0       0      03/13 01:29:34 jTDS                                                               55    0    
56    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 376     5      03/13 01:31:11 jTDS                                                               56    0    
57    sleeping                       admin                                                                          CGVAK-328         .   master                       AWAITING COMMAND 16      38     03/13 01:40:22 Database Engine Tuning Advisor                                     57    0    
58    sleeping                       NT SERVICE\ReportServer$MSSQLSERVER2012                                        WIN-07VQ7EIB4L1   .   ReportServer$MSSQLSERVER2012 AWAITING COMMAND 0       0      03/13 01:41:14 Report Server                                                      58    0    
59    sleeping                       admin                                                                          CGVAK-328         .   master                       AWAITING COMMAND 0       0      03/13 00:50:47 Database Engine Tuning Advisor                                     59    0    
60    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 125     7      03/13 01:17:27 Microsoft SQL Server Management Studio - Query                     60    0    
62    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 202     0      03/13 01:41:20 jTDS                                                               62    0    
63    sleeping                       admin                                                                          CGVAK-328         .   PUC                          AWAITING COMMAND 718     8      03/13 01:29:35 jTDS                                                               63    0    
64    SUSPENDED                      admin                                                                          CGVAK-328       55    PUC                          DELETE           0       0      03/13 01:31:11 jTDS                                                               64    0    
65    sleeping                       admin                                                                          DEVARAJ-PC        .   master                       AWAITING COMMAND 374     0      03/13 01:15:05 Microsoft SQL Server Management Studio                             65    0    
66    sleeping                       admin                                                                          DEVARAJ-PC        .   PUC                          AWAITING COMMAND 0       0      03/13 01:31:50 Microsoft SQL Server Management Studio - Query                     66    0    
67    sleeping                       admin                                                                          DEVARAJ-PC        .   master                       AWAITING COMMAND 0       0      03/13 01:31:46 Microsoft SQL Server Management Studio - Transact-SQL IntelliSense 67    0    
68    sleeping                       admin                                                                          DEVARAJ-PC        .   master                       AWAITING COMMAND 0       0      03/13 01:33:19 Microsoft SQL Server Management Studio - Transact-SQL IntelliSense 68    0    
69    RUNNABLE                       admin                                                                          CGVAK-328         .   PUC                          SELECT INTO      31      8      03/13 01:33:29 Microsoft SQL Server Management Studio - Query                     69    0    

(48 row(s) affected)

Folgenden ist die Ausgabe für SELECT * FROM sys.dynamischen Verwaltungssichten dm_exec_requests blocking_session_id verwiesen, wo <>0

session_id request_id  start_time              status                         command                          sql_handle                                                                                                                         statement_start_offset statement_end_offset plan_handle                                                                                                                        database_id user_id     connection_id                        blocking_session_id wait_type                                                    wait_time   last_wait_type                                               wait_resource                                                                                                                                                                                                                                                    open_transaction_count open_resultset_count transaction_id       context_info                                                                                                                                                                                                                                                       percent_complete estimated_completion_time cpu_time    total_elapsed_time scheduler_id task_address       reads                writes               logical_reads        text_size   language                                                                                                                         date_format date_first quoted_identifier arithabort ansi_null_dflt_on ansi_defaults ansi_warnings ansi_padding ansi_nulls concat_null_yields_null transaction_isolation_level lock_timeout deadlock_priority row_count            prev_error  nest_level  granted_query_memory executing_managed_code group_id    query_hash         query_plan_hash
---------- ----------- ----------------------- ------------------------------ -------------------------------- ---------------------------------------------------------------------------------------------------------------------------------- ---------------------- -------------------- ---------------------------------------------------------------------------------------------------------------------------------- ----------- ----------- ------------------------------------ ------------------- ------------------------------------------------------------ ----------- ------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------- -------------------- -------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------- ------------------------- ----------- ------------------ ------------ ------------------ -------------------- -------------------- -------------------- ----------- -------------------------------------------------------------------------------------------------------------------------------- ----------- ---------- ----------------- ---------- ----------------- ------------- ------------- ------------ ---------- ----------------------- --------------------------- ------------ ----------------- -------------------- ----------- ----------- -------------------- ---------------------- ----------- ------------------ ------------------
64         0           2014-03-13 01:31:11.927 suspended                      DELETE                           0x0200000095E2BC33A9AC347266EB7BD07B54F63FA636143300000000000000000000000000000000                                                 0                      -1                   0x0600080095E2BC3330BCFB1501000000000000000000000000000000000000000000000000000000                                                 8           1           07E2265C-3159-4099-B6DF-8B2A8FCA4BB9 55                  LCK_M_U                                                      137240      LCK_M_U                                                      KEY: 8:72057596467675136 (915ffb6f1e99)                                                                                                                                                                                                                          2                      1                    6920013              0x                                                                                                                                                                                                                                                                 0                0                         0           137240             1            0x638702F8         0                    0                    2                    2147483647  us_english                                                                                                                       mdy         7          1                 0          1                 0             1             1            1          1                       2                           -1           0                 0                    0           1           0                    0                      1           0x83FE4907FA5F0EF2 0x873EF4A76D497C0C

(1 row(s) affected)

Ich bin mit SQL Server 2012 und folgende ist der Ausführungsplan.

<?xml version="1.0" encoding="utf-16"?>
<ShowPlanXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.2" Build="11.0.3128.0" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
  <BatchSequence>
    <Batch>
      <Statements>
        <StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1" StatementOptmLevel="TRIVIAL" StatementSubTreeCost="0.0032831" StatementText="select * from sys_letter_intid" StatementType="SELECT" QueryHash="0x806EE30ADB72F191" QueryPlanHash="0x47B522D12A52B90C" RetrievedFromCache="true">
          <StatementSetOptions ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" NUMERIC_ROUNDABORT="false" QUOTED_IDENTIFIER="true" />
          <QueryPlan CachedPlanSize="8" CompileTime="0" CompileCPU="0" CompileMemory="56">
            <MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" />
            <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="104702" EstimatedPagesCached="9938" EstimatedAvailableDegreeOfParallelism="2" />
            <RelOp AvgRowSize="85" EstimateCPU="0.0001581" EstimateIO="0.003125" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Clustered Index Scan" NodeId="0" Parallel="false" PhysicalOp="Clustered Index Scan" EstimatedTotalSubtreeCost="0.0032831" TableCardinality="1">
              <OutputList>
                <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="intid" />
                <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="id" />
                <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="misc_text" />
                <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="misc_Date" />
                <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="misc_amount" />
              </OutputList>
              <IndexScan Ordered="false" ForcedIndex="false" ForceScan="false" NoExpandHint="false">
                <DefinedValues>
                  <DefinedValue>
                    <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="intid" />
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="id" />
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="misc_text" />
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="misc_Date" />
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Column="misc_amount" />
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[PUC]" Schema="[dbo]" Table="[sys_letter_intid]" Index="[IDX_sys_letter_intid]" IndexKind="Clustered" />
              </IndexScan>
            </RelOp>
          </QueryPlan>
        </StmtSimple>
      </Statements>
    </Batch>
  </BatchSequence>
</ShowPlanXML>
Wie viele rows, und welche Spalten diese Tabelle haben? Und machen Sie wirklich brauchen Sie ALLE Spalten (SELECT *) und ALLE Zeilen (keine WHERE - Klausel) aus der Tabelle? Wenn Sie wirklich brauchen alles aus dieser Tabelle - es gibt wirklich keine "magischen" Weg, um die Geschwindigkeit der clustered-index-scan .....
Ist es eine Sperre auf die Tabelle?
Wenn die Abfrage, die nie abgeschlossen ist, müssen Sie den geschätzten Ausführungsplan, und nicht die tatsächliche. Da hat es eine Zeile ist, müssen Sie entweder den langsamsten computer auf der Erde oder @MichaelTodd korrekt ist. Versuchen Sie: select * from sys_letter_intid MIT (NOLOCK)
FYI - Sie brauchen nicht die MIT dem Schlüsselwort bei der Verwendung von (NOLOCK). select * from table (nolock) funktioniert.
Das auslassen des WITH-Schlüsselwort ist ein veraltetes feature: Diese Funktion wird in einer zukünftigen version von Microsoft SQL Server. Vermeiden Sie die Verwendung dieses Features bei neuen Entwicklungsarbeiten, und planen Sie das ändern von Anwendungen, die diese Funktion derzeit verwenden. technet.microsoft.com/en-us/library/ms187373.aspx

InformationsquelleAutor Leejoy | 2014-03-12

Schreibe einen Kommentar