Une instruction select simple est de prendre trop de temps

L'instruction select simple suivante est de prendre trop de temps à s'exécuter:

select * from sys_letter_intid

sys_letter_intid structure de la table:

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]

Pas sûr au sujet du nombre de lignes, parce que même SELECT COUNT(*) FROM sys_letter_intid et select top 1 * à partir de sys_letter_intid commande par intid desc requête prend trop de temps à s'exécuter.

  • Index de l'Espace - 0.023 MO
  • Nombre De Lignes - 1
  • Données de l'Espace - 0.008 MO

sp_lock donne le résultat suivant:

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 donne le résultat suivant:

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)

Qui suit est le résultat de SELECT * from sys.dm_exec_requests où blocking_session_id <>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)

Je suis à l'aide de SQL Server 2012 et à la suite est le plan d'exécution.

<?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>
  • Combien de lignes et ce genre de colonnes cette table? Et avez-vous vraiment besoin TOUS colonnes (SELECT *) et TOUS lignes (pas de WHERE clause) à partir de votre tableau? Si vous avez vraiment besoin de tout à partir de cette table - il n'y a vraiment pas de "magie" afin d'accélérer l'analyse d'index cluster .....
  • Oui @marc_s j'ai besoin de toutes les colonnes
  • Cliquez-droit sur la table dans SSMS et cliquez sur Propriétés, puis Stockage. Vous devriez voir un nombre de lignes cotées.
  • Si vous souhaitez que le nombre de lignes, il suffit d'utiliser SELECT COUNT(*) FROM sys_letter_intid table. Votre TOP 1 requête à l'aide de Order by, ce sera donc lente, surtout si il y a beaucoup de lignes, et pas de index.
  • J'ai mis à jour sur le nombre de lignes.
  • Est-il un verrou sur la table?
  • Si la requête ne se termine jamais, vous devez obtenir l'estimation du plan d'exécution, et non pas le réel. Depuis il a une ligne, soit vous avez le plus lent de l'ordinateur sur la terre ou @MichaelTodd est correct. Essayez: select * from sys_letter_intid AVEC (NOLOCK)
  • Vous devriez éviter de nommer les tables qui commencent par sys. Mais d'autres que votre serveur est l'éther fixé de sorte qu'il ne peut même pas le processus simple en sql ou quelque chose a un verrou sur une table qui n'est pas publié.
  • Merci @PhilSandler AVEC(NOLOCK) fonctionne.
  • Important: Combien de temps cela prend-il pour produire ce plan de requête?
  • Qu'est-ce que proc 56 en train de faire? Quel qu'il soit est probablement le blocage de cette requête en cours d'exécution.
  • Est-ce à SELECT * FROM sys.dm_exec_requests where blocking_session_id <>0 retourne rien?
  • J'ai mis à jour la question
  • J'ai couru un SP_Who2 et voir si le Spid sont le blocage de votre processus.
  • J'ai mis à jour la question
  • Si vous êtes SPID 64, bloqué par SPID 55. Vous avez besoin pour traquer CGVAK-328 et leur dire de fermer leur connexion à SPID 55 parce que vous avez besoin d'accéder à votre table et c'est le blocage de vous.
  • FYI - Vous n'avez pas besoin de la clé lors de l'utilisation (NOLOCK). select * from table (nolock) œuvres.
  • L'omission du mot-clé est une fonctionnalité obsolète: Cette fonction sera supprimée dans une future version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et le plan de modifier les applications qui utilisent actuellement cette fonction. technet.microsoft.com/en-us/library/ms187373.aspx
  • Bon à savoir, merci pour l'information.
  • Si vous avez une tonne de tables dans le lot de l'exécution, vous pouvez au lieu de type set transaction isolation level read uncommitted en haut de la requête de lot, et l'effet est essentiellement la même que si (nolock) conseils sur chaque table que vous achetez à partir.
  • Avez-vous définir la clé primaire de la table, dans ce cas, je pense que [id] devrait être la clé primaire.

InformationsquelleAutor Leejoy | 2014-03-12