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

Откуда:
Сообщений: 36
Всем привет.

Сервер 1 (MSSQL 2000)
Сервер 2 (MSSQL 2008R2)

Оба прилинкованы.

На Сервер1 есть VIEW1 (Select * from Сервер2.база.таблица)
Все работало замечательно пока я на Сервер1 тоже не поставил MSSQL2008R2...

VIEW1 (Select * from Сервер2.база.таблица) - Выборка из 200 тыс строк работает отлично как и раньше за пару сек, но!
UPDATE VIEW1 set type = 2 where ID = 123 - Скорость выполнения апдейта одной строки увеличилась в 50раз!

UPDATE VIEW1 set type = 2 where ID = 123 100 сек.
UPDATE Сервер2.база.таблица set type = 2 where ID = 123 3 сек.
Через OPENQUERY 2 сек.

Должно быть 20-30 строк подряд за пару секунд максимум! Так что ничего из вышеперечисленного по скорости не подходит...

Вот столкнулся с такой проблемой. Почему так долго думает сервер не могу понять....
Через QA все пролетает кроме именно этого запроса UPDATE VIEW1 set type = 2 where ID = 123 DURATION 80-90 тыс.
План тоже ничего не показывает...
Куда копать?
7 июн 13, 11:32    [14404934]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Гость333
Member

Откуда:
Сообщений: 3683
fumitox,

А такой запрос как быстро выполняется?
EXEC('UPDATE база.таблица set type = 2 where ID = 123') AT Сервер2
7 июн 13, 11:36    [14404987]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Glory
Member

Откуда:
Сообщений: 104760
fumitox
Почему так долго думает сервер не могу понять....

План выполнения смотрели ?
Что происходит на Сервер 2 тоже смотрели ?
7 июн 13, 11:39    [14405028]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Гость333,

Так же как и без exec.

Glory,

План смотрел, говорит remote Query Cost 100%
А на сервер2 куда смотреть? Проблема явно с сервер1...
7 июн 13, 11:45    [14405098]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Glory
Member

Откуда:
Сообщений: 104760
fumitox
План смотрел, говорит remote Query Cost 100%

Офигительно информативно. Стоимость одного запроса в пакет всегда 100%

fumitox
А на сервер2 куда смотреть? Проблема явно с сервер1...

В профайлер.
7 июн 13, 11:47    [14405117]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

Для большей информативности что сделать? Скриншот прислать?

В профилер щас гляну
7 июн 13, 11:50    [14405145]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Glory
Member

Откуда:
Сообщений: 104760
fumitox
Для большей информативности что сделать? Скриншот прислать?

Как дети просто. Привести текстовый план здесь. Через копи-пейст
7 июн 13, 11:51    [14405157]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

На сервер2 профилер показываем порядка 1200 строчек вида exec sp_cursorfetch 180150011,16,115600,1
после чего происходит сам апдейт, т.е.
exec sp_cursorfetch 180150011,16,115600,1 занимает все время... как это убрать?
7 июн 13, 11:59    [14405222]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

<?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.1" Build="10.50.2500.0" xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan">
  <BatchSequence>
    <Batch>
      <Statements>
        <StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1" StatementOptmLevel="FULL" StatementSubTreeCost="38.6539" StatementText="Update InterZak set Type=2 where IZID=119910" StatementType="UPDATE" ParameterizedText="(@1 int,@2 int)UPDATE [InterZak] set [Type] = @1  WHERE [IZID]=@2" QueryHash="0xF63BAC27407026CB" QueryPlanHash="0xC622CC3F5AC6630D">
          <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="32" CompileTime="790" CompileCPU="790" CompileMemory="248">
            <RelOp AvgRowSize="9" EstimateCPU="1E-06" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="1" LogicalOp="Remote Update" NodeId="0" Parallel="false" PhysicalOp="Remote Update" EstimatedTotalSubtreeCost="38.6539">
              <OutputList />
              <RemoteModify RemoteSource="192.168.100.100" RemoteObject="&quot;База&quot;.&quot;dbo&quot;.&quot;Таблица&quot;">
                <SetPredicate>
                  <ScalarOperator ScalarString="[Сервер2].[База].[dbo].[Таблица].[Type] as [Таблица_1].[Type] = [@1]">
                    <ScalarExpressionList>
                      <ScalarOperator>
                        <MultipleAssign>
                          <Assign>
                            <ColumnReference Server="[Сервер2]" Database="[База]" Schema="[dbo]" Table="[Таблица]" Alias="[Таблица_1]" Column="Type" />
                            <ScalarOperator>
                              <Identifier>
                                <ColumnReference Column="@1" />
                              </Identifier>
                            </ScalarOperator>
                          </Assign>
                        </MultipleAssign>
                      </ScalarOperator>
                    </ScalarExpressionList>
                  </ScalarOperator>
                </SetPredicate>
                <RelOp AvgRowSize="15" EstimateCPU="0.00010046" EstimateIO="0.013125" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="1" LogicalOp="Eager Spool" NodeId="1" Parallel="false" PhysicalOp="Table Spool" EstimatedTotalSubtreeCost="38.6539">
                  <OutputList>
                    <ColumnReference Column="Bmk1000" />
                  </OutputList>
                  <Spool>
                    <RelOp AvgRowSize="15" EstimateCPU="0.00213323" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="1" LogicalOp="Filter" NodeId="2" Parallel="false" PhysicalOp="Filter" EstimatedTotalSubtreeCost="38.6406">
                      <OutputList>
                        <ColumnReference Column="Bmk1000" />
                      </OutputList>
                      <Filter StartupExpression="false">
                        <RelOp AvgRowSize="19" EstimateCPU="0.0555163" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="4444.23" LogicalOp="Filter" NodeId="3" Parallel="false" PhysicalOp="Filter" EstimatedTotalSubtreeCost="38.6385">
                          <OutputList>
                            <ColumnReference Column="Bmk1000" />
                            <ColumnReference Server="[Сервер2]" Database="[База]" Schema="[dbo]" Table="[Таблица]" Alias="[Таблица_1]" Column="IZID" />
                          </OutputList>
                          <Filter StartupExpression="false">
                            <RelOp AvgRowSize="23" EstimateCPU="38.583" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="115659" LogicalOp="Remote Scan" NodeId="4" Parallel="false" PhysicalOp="Remote Scan" EstimatedTotalSubtreeCost="38.583">
                              <OutputList>
                                <ColumnReference Column="Bmk1000" />
                                <ColumnReference Server="[Сервер2]" Database="[База]" Schema="[dbo]" Table="[Таблица]" Alias="[Таблица_1]" Column="IZID" />
                                <ColumnReference Server="[Сервер2]" Database="[База]" Schema="[dbo]" Table="[Таблица]" Alias="[Таблица_1]" Column="Sclad" />
                              </OutputList>
                              <RemoteScan RemoteSource="192.168.100.100" RemoteObject="&quot;База&quot;.&quot;dbo&quot;.&quot;Таблица&quot;" />
                            </RelOp>
                            <Predicate>
                              <ScalarOperator ScalarString="[Сервер2].[База].[dbo].[Таблица].[Sclad] as [Таблица_1].[Sclad]=(1)">
                                <Compare CompareOp="EQ">
                                  <ScalarOperator>
                                    <Identifier>
                                      <ColumnReference Server="[Сервер2]" Database="[База]" Schema="[dbo]" Table="[Таблица]" Alias="[Таблица_1]" Column="Sclad" />
                                    </Identifier>
                                  </ScalarOperator>
                                  <ScalarOperator>
                                    <Const ConstValue="(1)" />
                                  </ScalarOperator>
                                </Compare>
                              </ScalarOperator>
                            </Predicate>
                          </Filter>
                        </RelOp>
                        <Predicate>
                          <ScalarOperator ScalarString="[Сервер2].[База].[dbo].[Таблица].[IZID] as [Таблица_1].[IZID]=(119910)">
                            <Compare CompareOp="EQ">
                              <ScalarOperator>
                                <Identifier>
                                  <ColumnReference Server="[Сервер2]" Database="[База]" Schema="[dbo]" Table="[Таблица]" Alias="[Таблица_1]" Column="IZID" />
                                </Identifier>
                              </ScalarOperator>
                              <ScalarOperator>
                                <Const ConstValue="(119910)" />
                              </ScalarOperator>
                            </Compare>
                          </ScalarOperator>
                        </Predicate>
                      </Filter>
                    </RelOp>
                  </Spool>
                </RelOp>
              </RemoteModify>
            </RelOp>
            <ParameterList>
              <ColumnReference Column="@1" ParameterCompiledValue="(2)" />
              <ColumnReference Column="@2" ParameterCompiledValue="(119910)" />
            </ParameterList>
          </QueryPlan>
        </StmtSimple>
      </Statements>
    </Batch>
  </BatchSequence>
</ShowPlanXML>
7 июн 13, 12:10    [14405327]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Glory
Member

Откуда:
Сообщений: 104760
Какой провайдер использован для линкед сервера ?
Дайте скрипт создания линкед сервера

Какие опции есть/выбраны в свойствах этого провайдера
7 июн 13, 12:32    [14405533]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

/****** Object: LinkedServer [Сервер2] Script Date: 06/07/2013 12:39:38 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'Сервер2', @srvproduct=N'LinckedDerver', @provider=N'SQLNCLI10', @datasrc=N'########'
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Сервер2',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Сервер2',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword='########'

GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'collation compatible', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'rpc', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'rpc out', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO

Сообщение было отредактировано: 7 июн 13, 14:37
7 июн 13, 12:43    [14405600]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Glory
Member

Откуда:
Сообщений: 104760
1. Попробуйте отключить
EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'rpc out', @optvalue=N'true'

2. В свойствах провайдера задано Allow inprocess ?
7 июн 13, 14:04    [14406252]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

Все поставил, без изменений. Allow inprocess - единственный параметр отмеченный птичкой.
Профайлер с этими настройками:

-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed

SET XACT_ABORT OFF

declare @p1 int
set @p1=1
declare @p2 bigint
set @p2=177940508539135
exec [sys].sp_getschemalock @p1 output,@p2 output,N'[База].[dbo].[Таблица]'
select @p1, @p2

declare @p1 int
set @p1=180150045
declare @p3 int
set @p3=1
declare @p4 int
set @p4=16388
declare @p5 int
set @p5=115730
exec sp_cursoropen @p1 output,N'select * from [База].[dbo].[Таблица]',@p3 output,@p4 output,@p5 output
select @p1, @p3, @p4, @p5

exec sp_cursorfetch 180150045,16,1,1                      ---1000+ РАЗ

exec sp_cursor 180150043,33,1,N'[База].[dbo].[Таблица]',@Type=2
go
exec [sys].sp_releaseschemalock 1
go
exec sp_cursorclose 180150043
go
exec sp_reset_connection 
go
7 июн 13, 14:25    [14406387]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Технологии Push и Pull при работе с linked servers в Microsoft SQL Server
7 июн 13, 14:38    [14406493]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Knyazev Alexey,

Спасибо уже прочитал, не то)
7 июн 13, 14:39    [14406511]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

Вот профилер второго сервера, только на этот раз идентичный запрос на апдейт отправлен с sql2000 (многновенно)

-- network protocol: TCP/IP
set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed

set implicit_transactions on 


declare @p1 int
set @p1=1
declare @p2 bigint
set @p2=177940508539135
exec sp_getschemalock @p1 output,@p2 output,N'"База"."dbo"."Таблица"'
select @p1, @p2

declare @p1 int
set @p1=3
exec sp_prepexec @p1 output,N'@P1 int',N'UPDATE "База"."dbo"."Таблица" SET Type = @P1 FROM "База"."dbo"."Таблица" Tbl1001 WHERE Tbl1001."Sclad"=(1) AND Tbl1001."IZID"=(119910)',2
select @p1

exec sp_unprepare 3

IF @@TRANCOUNT > 0 COMMIT TRAN

set implicit_transactions off 

exec sp_reset_connection 
7 июн 13, 14:46    [14406567]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Glory
Member

Откуда:
Сообщений: 104760
fumitox
на апдейт отправлен с sql2000 (многновенно)

Так там другой провайдер наверное ?
7 июн 13, 14:47    [14406578]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Другой, но изначально я этот скрипт применил на новый сервер, но щас еще раз попробую!!

/****** Object:  LinkedServer [Сервер2]    Script Date: 06/07/2013 14:54:58 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'Сервер2', @srvproduct=N'LinkedServer', @provider=N'SQLOLEDB', @datasrc=N'192.168.100.100'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Сервер2',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassword='########'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Сервер2',@useself=N'False',@locallogin=N'sa',@rmtuser=N'sa',@rmtpassword='########'

GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'collation compatible', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'rpc', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'rpc out', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'Сервер2', @optname=N'use remote collation', @optvalue=N'true'
GO
7 июн 13, 14:57    [14406655]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Glory,

Склонировал LinkedServer с sql2000 результат тот же!
7 июн 13, 15:02    [14406692]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
fumitox
EXEC master.dbo.sp_addlinkedserver @server = N'Сервер2', @srvproduct=N'LinkedServer', @provider=N'SQLOLEDB', @datasrc=N'192.168.100.100'
А накуя столько выябства?
EXEC master.dbo.sp_addlinkedserver @server = N'<ServerName>', @srvproduct=N'SQL Server'

КО: План чётко показывает что стратегия оптимизации удалённого вызова отсутствует.
7 июн 13, 16:28    [14407416]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
А всякие "Index as access path", "Nested queries" и "Dynamic parameter" не надо ставить?
Для нативного провайдера типа это итак работает?
7 июн 13, 16:53    [14407563]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Mnior,

Когда я создал на sql2000 lincked server, его производительность меня устраивала, поэтому ковыряние в дополнительных настройках нужды не было. А теперь не устраивает... теперь ковыряюсь...

Мне нужно включить в настройках провайдера "Index as access path", "Nested queries" и "Dynamic parameter". Я правильно понимаю??
7 июн 13, 17:03    [14407621]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Mnior,

Сделал так. Не помогло...
7 июн 13, 18:29    [14407935]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Неудачная задачка для тяпницы, все гуру пошли пить эльфийское пиво.
Даже Knyazev Alexey, быстро кинул ссылку на мантру и утащил с собой Glory.
7 июн 13, 23:10    [14408704]     Ответить | Цитировать Сообщить модератору
 Re: Сильно тормозят запросы update к Linked Server через view  [new]
fumitox
Member

Откуда:
Сообщений: 36
Mnior,

Случилось в пятницу)) Сижу вот штудирую... все безуспешно...

Возник еще вопрос. Может ли быть дело в провайдере? SQL2000 использует SQLOLEDB, а 2008й даже если при создании поставить как на 2000м будет использовать SQLNCLI...

И еще один нюанс, во вьюхе стоит не совсем тот запрос что я писал:
select * from Сервер2.база.таблица where sclad = 1

если убрать "where sclad = 1" то апдейт одной строки вьюхи будет 1 секунда а не 1.5 минуты.
8 июн 13, 01:57    [14409061]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить