Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
При решении одной задачки заметил замедление при вставке данных.
В ходе поисков причины осталось две таблицы:
create table alarms_1 (id int default 1, descr nvarchar(255), insertion_time datetime default getdate() )
create table alarms_2 (id int default 1, descr nvarchar(255), insertion_time datetime default getdate() )


и скрипт, который вставляет 1000 (всего тысячу) записей
declare @cnt int, @msg varchar (100)
set @cnt=0
set nocount on
while @cnt<1000 begin
             set @cnt=@cnt+1
             set @msg = 'Alarm '+ CAST(@cnt as varchar(10))
             INSERT INTO [Alarms_1] ([descr])
             VALUES (@msg)
             set @cnt=@cnt+1
             set @msg = 'Alarm '+ CAST(@cnt as varchar(10))
             INSERT INTO [Alarms_2] ([descr])
             VALUES (@msg)
end
print 'end'
--dbcc dropcleanbuffers
--dbcc freeproccache

вставка длится 8секунд при запуске этого скрипта в SSMS. Это пиндык.

Русскоязычная версия
Microsoft SQL Server 2012 - 11.0.2218.0 (X64)
Jun 12 2012 13:05:25
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Операционная система
Windows Server 2008 R2 Standart x64

Никаких тяжелых приложений нет. На двух серверах проверил.
Один сервер вообще пока пустой, результат тот же.
Версия SQL несколько пораньше, автообновление еще не дошло.
Microsoft SQL Server 2012 - 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

Посмотрел списки исправлений, вроде такой ситуации не описано

Забыл сказать, что на моем рабочем компе, на SQL 2008, тот же скрипт вставляет по 5 тыс записей в секунду.
20 ноя 12, 10:10    [13498555]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
stavgreengo
Member

Откуда:
Сообщений: 710
план выполнения в студию !!!
20 ноя 12, 10:14    [13498581]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
_djХомяГ
Guest
Триггеры, констрейнты , индексы имеют место быть?
20 ноя 12, 10:27    [13498651]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Kasper
Member

Откуда: Брянск
Сообщений: 124
Matroz,

Откажитетесь от default
20 ноя 12, 10:31    [13498674]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
stavgreengo, просто интересно или по делу?
Какой бы ни был план, запрос простейщий и ситуация ненормальная.
<?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.2218.0" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
  <BatchSequence>
    <Batch>
      <Statements>
        <StmtSimple StatementCompId="6" StatementEstRows="1" StatementId="1" StatementOptmLevel="TRIVIAL" StatementSubTreeCost="0.0100022" StatementText="INSERT INTO [Alarms_1] ([descr])&#xD;&#xA;    VALUES (@msg)&#xD;&#xA;   " StatementType="INSERT" QueryHash="0x24ABA399C9375A1C" QueryPlanHash="0x3BD9C52D8279108D" 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 DegreeOfParallelism="1" CachedPlanSize="16" CompileTime="0" CompileCPU="0" CompileMemory="152">
            <MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" />
            <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="103981" EstimatedPagesCached="15970" EstimatedAvailableDegreeOfParallelism="2" />
            <RelOp AvgRowSize="9" EstimateCPU="1E-06" EstimateIO="0.01" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Insert" NodeId="0" Parallel="false" PhysicalOp="Table Insert" EstimatedTotalSubtreeCost="0.0100022">
              <OutputList />
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="1" ActualEndOfScans="1" ActualExecutions="1" />
              </RunTimeInformation>
              <ScalarInsert DMLRequestSort="false">
                <DefinedValues>
                  <DefinedValue>
                    <ColumnReference Column="Expr1004" />
                    <ScalarOperator ScalarString="CONVERT_IMPLICIT(nvarchar(255),[@msg],0)">
                      <Convert DataType="nvarchar" Length="510" Style="0" Implicit="true">
                        <ScalarOperator>
                          <Identifier>
                            <ColumnReference Column="@msg" />
                          </Identifier>
                        </ScalarOperator>
                      </Convert>
                    </ScalarOperator>
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Column="Expr1005" />
                    <ScalarOperator ScalarString="(1)">
                      <Const ConstValue="(1)" />
                    </ScalarOperator>
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Column="Expr1006" />
                    <ScalarOperator ScalarString="getdate()">
                      <Identifier>
                        <ColumnReference Column="ConstExpr1007">
                          <ScalarOperator>
                            <Intrinsic FunctionName="getdate" />
                          </ScalarOperator>
                        </ColumnReference>
                      </Identifier>
                    </ScalarOperator>
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[test]" Schema="[dbo]" Table="[alarms_1]" IndexKind="Heap" />
                <SetPredicate>
                  <ScalarOperator ScalarString="[test].[dbo].[alarms_1].[descr] = [Expr1004],[test].[dbo].[alarms_1].[id] = [Expr1005],[test].[dbo].[alarms_1].[insertion_time] = [Expr1006]">
                    <ScalarExpressionList>
                      <ScalarOperator>
                        <MultipleAssign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_1]" Column="descr" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1004" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_1]" Column="id" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1005" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_1]" Column="insertion_time" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1006" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                        </MultipleAssign>
                      </ScalarOperator>
                    </ScalarExpressionList>
                  </ScalarOperator>
                </SetPredicate>
              </ScalarInsert>
            </RelOp>
            <ParameterList>
              <ColumnReference Column="@msg" ParameterRuntimeValue="'Alarm 1'" />
            </ParameterList>
          </QueryPlan>
        </StmtSimple>
      </Statements>
    </Batch>
    <Batch>
      <Statements>
        <StmtSimple StatementCompId="9" StatementEstRows="1" StatementId="2" StatementOptmLevel="TRIVIAL" StatementSubTreeCost="0.0100022" StatementText="INSERT INTO [Alarms_2] ([descr])&#xD;&#xA;    VALUES (@msg)&#xD;" StatementType="INSERT" QueryHash="0x470FA21FDA34E9A5" QueryPlanHash="0xDF670B42160BF6E4" 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 DegreeOfParallelism="1" CachedPlanSize="16" CompileTime="0" CompileCPU="0" CompileMemory="152">
            <MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" />
            <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="103981" EstimatedPagesCached="15970" EstimatedAvailableDegreeOfParallelism="2" />
            <RelOp AvgRowSize="9" EstimateCPU="1E-06" EstimateIO="0.01" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Insert" NodeId="0" Parallel="false" PhysicalOp="Table Insert" EstimatedTotalSubtreeCost="0.0100022">
              <OutputList />
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="1" ActualEndOfScans="1" ActualExecutions="1" />
              </RunTimeInformation>
              <ScalarInsert DMLRequestSort="false">
                <DefinedValues>
                  <DefinedValue>
                    <ColumnReference Column="Expr1004" />
                    <ScalarOperator ScalarString="CONVERT_IMPLICIT(nvarchar(255),[@msg],0)">
                      <Convert DataType="nvarchar" Length="510" Style="0" Implicit="true">
                        <ScalarOperator>
                          <Identifier>
                            <ColumnReference Column="@msg" />
                          </Identifier>
                        </ScalarOperator>
                      </Convert>
                    </ScalarOperator>
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Column="Expr1005" />
                    <ScalarOperator ScalarString="(1)">
                      <Const ConstValue="(1)" />
                    </ScalarOperator>
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Column="Expr1006" />
                    <ScalarOperator ScalarString="getdate()">
                      <Identifier>
                        <ColumnReference Column="ConstExpr1007">
                          <ScalarOperator>
                            <Intrinsic FunctionName="getdate" />
                          </ScalarOperator>
                        </ColumnReference>
                      </Identifier>
                    </ScalarOperator>
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[test]" Schema="[dbo]" Table="[alarms_2]" IndexKind="Heap" />
                <SetPredicate>
                  <ScalarOperator ScalarString="[test].[dbo].[alarms_2].[descr] = [Expr1004],[test].[dbo].[alarms_2].[id] = [Expr1005],[test].[dbo].[alarms_2].[insertion_time] = [Expr1006]">
                    <ScalarExpressionList>
                      <ScalarOperator>
                        <MultipleAssign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_2]" Column="descr" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1004" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_2]" Column="id" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1005" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_2]" Column="insertion_time" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1006" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                        </MultipleAssign>
                      </ScalarOperator>
                    </ScalarExpressionList>
                  </ScalarOperator>
                </SetPredicate>
              </ScalarInsert>
            </RelOp>
            <ParameterList>
              <ColumnReference Column="@msg" ParameterRuntimeValue="'Alarm 2'" />
            </ParameterList>
          </QueryPlan>
        </StmtSimple>
      </Statements>
    </Batch>
    ...


и т.д.
20 ноя 12, 10:35    [13498701]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
_djХомяГ
Триггеры, констрейнты , индексы имеют место быть?


Ситуация целиком изложена, скрипты на создание таблиц указаны. Это тест больше ничего нет

Kasper
Matroz,

Откажитетесь от default

с какой стати? Не должна быть такая низкая скорость вставки.
Я указал, что на рабочем компе (которому 4 года и даже новым он считался весьма рядовой рабочей станцией)
скорость в 40-50 раз выше, на SQL 2008.
20 ноя 12, 10:42    [13498740]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
Matroz
и т.д.

Вот можно это "и тд" выложить/приаттачить в виде полного плана ?

И какой именно из запросов "длится 8секунд" ?(только не говрите, что весь скрипт)
20 ноя 12, 10:43    [13498744]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
Glory,
план в архиве

К сообщению приложен файл (test.rar - 32Kb) cкачать
20 ноя 12, 10:56    [13498814]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вот нафиг нужен план всего цикла ?
20 ноя 12, 11:05    [13498870]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Matroz,

а почему в поле nvarchar(255) вставляется переменная varchar(100)?
Почему бы не объявить @msg nvarchar(255)?
И SET @msg=N'Alarm '+CAST(@cnt as nvarchar)?
20 ноя 12, 11:15    [13498904]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Matroz
вставка длится 8секунд при запуске этого скрипта в SSMS
А сколько будет, если заключить в общую транзакцию? Если быстро, то возможно, проблемы с диском для лога. Можно ещё взглянуть на очередь и дисковые задержки при выполнении скрипта (для удобства можно увеличить цикл до 10 000 )
20 ноя 12, 11:25    [13498943]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Crimean
Member

Откуда:
Сообщений: 13148
зеркалирование? репликации?
20 ноя 12, 11:27    [13498949]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
alexeyvg
А сколько будет, если заключить в общую транзакцию?
У меня в 6 раз быстрее (900 и 16 мс соответственно), это значит, что дисковая система более менее в порядке. А у вас наверное разница раз в 100
20 ноя 12, 11:30    [13498970]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
Glory,
а какой план нужен?
Да, весь скрипт выполняется 8 секунд.
План выполнения состоит из 1000 однотипных блоков.
Это неправда, чтоли?
Без вставки данных он выполняется мгновенно на 1 тыс записей.

Пусть будет такой блок
SET STATISTICS TIME ON
GO
declare @cnt int, @msg varchar (100)
set @msg = 'Alarm '+ CAST(@cnt as varchar(10))

INSERT INTO [Alarms_1] ([descr])
VALUES (@msg)
SET STATISTICS TIME OFF

его результат

Время синтаксического анализа и компиляции SQL Server:
время ЦП = 0 мс, истекшее время = 0 мс.

Время работы SQL Server:
Время ЦП = 0 мс, затраченное время = 0 мс.


Время работы SQL Server:
Время ЦП = 0 мс, затраченное время = 18 мс.

реально от 7 до 18 мс.

план (при выполнении без set statistics)
<?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.2218.0" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
  <BatchSequence>
    <Batch>
      <Statements>
        <StmtSimple StatementCompId="2" StatementEstRows="1" StatementId="1" StatementOptmLevel="TRIVIAL" StatementSubTreeCost="0.0100022" StatementText="INSERT INTO [Alarms_1] ([descr])&#xD;&#xA;VALUES (@msg)" StatementType="INSERT" QueryHash="0x24ABA399C9375A1C" QueryPlanHash="0x3BD9C52D8279108D" 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 DegreeOfParallelism="1" CachedPlanSize="16" CompileTime="0" CompileCPU="0" CompileMemory="128">
            <MemoryGrantInfo SerialRequiredMemory="0" SerialDesiredMemory="0" />
            <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="103981" EstimatedPagesCached="14769" EstimatedAvailableDegreeOfParallelism="2" />
            <RelOp AvgRowSize="9" EstimateCPU="1E-06" EstimateIO="0.01" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row" EstimateRows="1" LogicalOp="Insert" NodeId="0" Parallel="false" PhysicalOp="Table Insert" EstimatedTotalSubtreeCost="0.0100022">
              <OutputList />
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="1" ActualEndOfScans="1" ActualExecutions="1" />
              </RunTimeInformation>
              <ScalarInsert DMLRequestSort="false">
                <DefinedValues>
                  <DefinedValue>
                    <ColumnReference Column="Expr1004" />
                    <ScalarOperator ScalarString="CONVERT_IMPLICIT(nvarchar(255),[@msg],0)">
                      <Convert DataType="nvarchar" Length="510" Style="0" Implicit="true">
                        <ScalarOperator>
                          <Identifier>
                            <ColumnReference Column="@msg" />
                          </Identifier>
                        </ScalarOperator>
                      </Convert>
                    </ScalarOperator>
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Column="Expr1005" />
                    <ScalarOperator ScalarString="(1)">
                      <Const ConstValue="(1)" />
                    </ScalarOperator>
                  </DefinedValue>
                  <DefinedValue>
                    <ColumnReference Column="Expr1006" />
                    <ScalarOperator ScalarString="getdate()">
                      <Identifier>
                        <ColumnReference Column="ConstExpr1007">
                          <ScalarOperator>
                            <Intrinsic FunctionName="getdate" />
                          </ScalarOperator>
                        </ColumnReference>
                      </Identifier>
                    </ScalarOperator>
                  </DefinedValue>
                </DefinedValues>
                <Object Database="[test]" Schema="[dbo]" Table="[alarms_1]" IndexKind="Heap" />
                <SetPredicate>
                  <ScalarOperator ScalarString="[test].[dbo].[alarms_1].[descr] = [Expr1004],[test].[dbo].[alarms_1].[id] = [Expr1005],[test].[dbo].[alarms_1].[insertion_time] = [Expr1006]">
                    <ScalarExpressionList>
                      <ScalarOperator>
                        <MultipleAssign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_1]" Column="descr" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1004" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_1]" Column="id" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1005" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                          <Assign>
                            <ColumnReference Database="[test]" Schema="[dbo]" Table="[alarms_1]" Column="insertion_time" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="Expr1006" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                        </MultipleAssign>
                      </ScalarOperator>
                    </ScalarExpressionList>
                  </ScalarOperator>
                </SetPredicate>
              </ScalarInsert>
            </RelOp>
            <ParameterList>
              <ColumnReference Column="@msg" ParameterRuntimeValue="NULL" />
            </ParameterList>
          </QueryPlan>
        </StmtSimple>
      </Statements>
    </Batch>
  </BatchSequence>
</ShowPlanXML>
20 ноя 12, 11:33    [13498985]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Matroz
вставка длится 8секунд при запуске этого скрипта в SSMS. Это пиндык.


как уже предлагали - а если обернуть в транзакцию?
у меня на средненьком оборудовании 300 ms "для клиента"
20 ноя 12, 11:50    [13499109]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
invm
Member

Откуда: Москва
Сообщений: 9413
Matroz,

Антивирусное ПО установлено на сервере?
20 ноя 12, 12:00    [13499200]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
МуМу
Member

Откуда:
Сообщений: 1134
При оборачивании этого текста в транзакцию ускорение будет на порядок. Вопрос возникает почему на SQL 2008 это работало быстрее? Мне кажется вы там не заметили транзакцию:)
20 ноя 12, 12:08    [13499292]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
Crimean
как уже предлагали - а если обернуть в транзакцию?
у меня на средненьком оборудовании 300 ms "для клиента"


обернул, миллисекунды не мерял, но меньше секунды. Увеличил число записей в цикле до 100 000 - 4 секунды выполняется.
20 ноя 12, 12:14    [13499343]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
МуМу
При оборачивании этого текста в транзакцию ускорение будет на порядок. Вопрос возникает почему на SQL 2008 это работало быстрее? Мне кажется вы там не заметили транзакцию:)


Я один и тот же скрипт запускал. Копипастил
20 ноя 12, 12:15    [13499353]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34621
Matroz,

Поле insert time задавай явно, дефолт удали.
20 ноя 12, 12:16    [13499359]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
МуМу
При оборачивании этого текста в транзакцию ускорение будет на порядок. Вопрос возникает почему на SQL 2008 это работало быстрее? Мне кажется вы там не заметили транзакцию:)


А может быть, что в 2012 по умолчанию неявные транзакции включены?
20 ноя 12, 12:17    [13499360]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Crimean
Member

Откуда:
Сообщений: 13148
по-моему все же синхронное зеркалирование включено :) ну или как их там в 12 дразнят, группы высокой доступности?
ну очень похоже
20 ноя 12, 12:21    [13499379]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
МуМу
Member

Откуда:
Сообщений: 1134
То Crimean. Я тоже об этом подумал:)
Один в один такой код на always on в синхронном режиме не так давно запускал. Но в разы отличие по времени при обвертке транзакцией все равно присутствует независимо от зеркалирования.
20 ноя 12, 12:31    [13499445]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Matroz
Member

Откуда: Ekaterinburg
Сообщений: 230
Crimean
по-моему все же синхронное зеркалирование включено :) ну или как их там в 12 дразнят, группы высокой доступности?
ну очень похоже

нет ничего, все что касается SQL настраиваю я. Кроме того, один из тестируемых серверов вообще пустой был, кроме SQL ничего не крутилось. На другом запущено несколько наших приложений. Но результат первого приведенного скрипта у них был одинаковый.
20 ноя 12, 12:35    [13499467]     Ответить | Цитировать Сообщить модератору
 Re: низкая производительность SQL 2012 при вставке данных  [new]
Crimean
Member

Откуда:
Сообщений: 13148
ну если никаких зеркалирований нет - все банально - просто кеш отключен
20 ноя 12, 12:37    [13499477]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить