powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / разница в поведении: SQL Server 2016 vs SQL Server 2019
25 сообщений из 39, страница 1 из 2
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988458
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот такой простенький запрос прекрасно проходит и на 2016м сервере и на 2019м НО ТОЛЬКО(!) в SQL Server Management Studio:

Код: sql
1.
2.
select '<tr><td>' + replicate(' ', len( SomeField ))  + '</td> <td align=right>' +  
  from dbo.SomeTbl  



в некоем же ява-фреймворке (Talend) запрос работал только на 2016м, а после перевода на 2019й начал падать! Без обьяснения причин. Просто закрывает connection после однократного исполнения! :-(

(если же заменить len( SomeField ) на константу, напр. 9 то всё без ошибок отрабатывает и на 2019м тоже!)

Что скажете, эксперты? Баг? Фича?
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988459
Marat2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DBAshnik
вот такой простенький запрос прекрасно проходит и на 2016м сервере и на 2019м НО ТОЛЬКО(!) в SQL Server Management Studio

Возможно влияет то, что например в SSMS по умолчанию включен ARITHABORT.
SET ARITHABORT
Обрати пожалуйста внимание на ремарку по ссылке.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988461
Marat2020
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marat2020
DBAshnik
вот такой простенький запрос прекрасно проходит и на 2016м сервере и на 2019м НО ТОЛЬКО(!) в SQL Server Management Studio

Возможно влияет то, что например в SSMS по умолчанию включен ARITHABORT.
SET ARITHABORT
Обрати пожалуйста внимание на ремарку по ссылке.


Немножко не раскрыл до конца мысль - в общем проверь настройки соединения. КМК пакость может крыться там.
Что же касается на 2016-м фреймворк работал, а на 2019 фиг, то посмотри и сравни в свойствах серверов раздел Connection, есть ли разница. Может там собака порылась.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988463
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включи трейс и посмотри какая ошибка выдается.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988472
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik
Просто закрывает connection после однократного исполнения! :-(
Что скажете, эксперты? Баг? Фича?


Поработаю бабойвангой: база у тя битая. DBCC CHECKDB откроет те глаза. А может и спасет.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988665
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
DBAshnik
Просто закрывает connection после однократного исполнения! :-(
Что скажете, эксперты? Баг? Фича?


Поработаю бабойвангой: база у тя битая. DBCC CHECKDB откроет те глаза. А может и спасет.


даааа, дельнейший совет! Спасибо большущее! Не допёр по неопытности с MsSQL (я старый ораклист) :-)
Короче вызов "DBCC CHECKDB" не заканчивается уже скоро как целый час!!! (На здоровых инстансах в прошлом, как помню, исполнялся за пару секунд...максимум...). Это ж уже показатель битой базы, да? Или не факт?
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988671
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik
aleks222
пропущено...


Поработаю бабойвангой: база у тя битая. DBCC CHECKDB откроет те глаза. А может и спасет.


даааа, дельнейший совет! Спасибо большущее! Не допёр по неопытности с MsSQL (я старый ораклист) :-)
Короче вызов "DBCC CHECKDB" не заканчивается уже скоро как целый час!!! (На здоровых инстансах в прошлом, как помню, исполнялся за пару секунд...максимум...). Это ж уже показатель битой базы, да? Или не факт?


Время выполнения зависит от размеров и "за пару секунд" не выполняется.
На нагруженной базе - еще дольше.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988700
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik
aleks222
пропущено...


Поработаю бабойвангой: база у тя битая. DBCC CHECKDB откроет те глаза. А может и спасет.


даааа, дельнейший совет! Спасибо большущее! Не допёр по неопытности с MsSQL (я старый ораклист) :-)
Короче вызов "DBCC CHECKDB" не заканчивается уже скоро как целый час!!! (На здоровых инстансах в прошлом, как помню, исполнялся за пару секунд...максимум...). Это ж уже показатель битой базы, да? Или не факт?
тогда должон падать и простой

Код: sql
1.
2.
select len(SomeField)
  from dbo.SomeTbl

и не только в джаве
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988929
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
DBAshnik
пропущено...


даааа, дельнейший совет! Спасибо большущее! Не допёр по неопытности с MsSQL (я старый ораклист) :-)
Короче вызов "DBCC CHECKDB" не заканчивается уже скоро как целый час!!! (На здоровых инстансах в прошлом, как помню, исполнялся за пару секунд...максимум...). Это ж уже показатель битой базы, да? Или не факт?


Время выполнения зависит от размеров и "за пару секунд" не выполняется.
На нагруженной базе - еще дольше.


ага, ну да, это я уже усёк. Больше 5 часов на немаленькой базе это даже нормально вроде. Спасибо!

Всё-же гипотеза о битой базе НЕ подтвердилась (к сожалению!) :-(
Вызов
Код: sql
1.
DBCC CHECKDB (MyBasaPRD) WITH NO_INFOMSGS, ALL_ERRORMSGS  



в итоге ничего не выдал (просто строку о том что выполнилось successfully !)
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988934
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
DBAshnik
пропущено...


даааа, дельнейший совет! Спасибо большущее! Не допёр по неопытности с MsSQL (я старый ораклист) :-)
Короче вызов "DBCC CHECKDB" не заканчивается уже скоро как целый час!!! (На здоровых инстансах в прошлом, как помню, исполнялся за пару секунд...максимум...). Это ж уже показатель битой базы, да? Или не факт?
тогда должон падать и простой

Код: sql
1.
2.
select len(SomeField)
  from dbo.SomeTbl

и не только в джаве


блин, ну так в том то и фишечка, что он не падает в MSSMS (Studio) ! А только в java(Talend).
И такой вот не падает:
Код: sql
1.
2.
3.
4.
   select '<tr><td>' + cast( len( SomeField ) as varchar(3) )
      from   dbo.SomeTbl
   where  SomeFld2 = '001-D1'
   and    SomeFld3 in (23, 46)
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988943
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257
Включи трейс и посмотри какая ошибка выдается.


как конкретно это сделать из ява-сессии? (cорри, я в MsSQL новичёк полнейший, как уже сказал)
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988962
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты в студии топ 1000 пишешь?
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39988994
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
А ты в студии топ 1000 пишешь?


и так и так _в студии_(!) работает. (и с топ 1000 и без)
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989008
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересно, что вот так работает:

Код: sql
1.
2.
3.
select
  cast( len(SomeField) as varchar(3) ) +  '<tr><td>' + doccode + replicate(' ', 7  )   
...



а вот так падает:

Код: sql
1.
2.
3.
select
  cast( len(SomeField) as varchar(3) ) +  '<tr><td>' + doccode + replicate(' ', len( SomeField )  )   
...
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989066
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

ну, значит обработчик ошибок глючный, не пробрасывает сообщение.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989079
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
DBAshnik,

ну, значит обработчик ошибок глючный, не пробрасывает сообщение.


Ошибки, приводящие к разрыву соединения, недоступны на клиенте.

Ваще-то тут уже советовали профайлер запустить...
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989091
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

подозреваю, что сам клиент и обрывает. Надо разбираться на более низком уровне - профайлером, сниффером.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989093
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik как конкретно это сделать из ява-сессии?Это надо запустить из студии
https://docs.microsoft.com/en-us/sql/tools/sql-server-profiler/sql-server-profiler?view=sql-server-ver15
YouTube Video
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989104
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cпецы! Я короче уже проооосто офигиваю от происходяшего! :-(
Уже столько всего перепробывал... :-(

1. Но пока ясны следущие факты:
replicate() не дружит с len(someField). Равно как и с DATALENGTH(). Хотя судя по доке мелкомякого они обязаны дружить:
https://docs.microsoft.com/de-de/sql/t-sql/functions/replicate-transact-sql?view=sql-server-ver15
Точнее ПЕРЕСТАЛА дружить при переходе c

Microsoft SQL Server 2016 (SP2-CU8) (KB4505830) - 13.0.5426.0 (X64)

на

Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64)


2. при этом не важно включён ли или выключен SET ARITHABORT (хоть ON хоть ОFF)
ошибка всегда одна:
Код: sql
1.
tMSSqlInput_2: java.sql.SQLException:Invalid state, the Connection object is closed.


и всё! :-(


3. подобное происходит даже если я сую всю конструкцию:
replicate(' ', len( SomeField )) во вью и опрашиваю view вместо таблицы! (т.е. ошибка на уровне MsSQL происходит, а не на уровне java/talend)


подскажите _пожалуйста_ что делать новичку в MSSQL!
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989106
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какой провайдер используете для соединения с сервером SQL?
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989107
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik(если же заменить len( SomeField ) на константу, напр. 9 то всё без ошибок отрабатывает и на 2019м тоже!)Это намек на то, что возможно, ваш фреймворк или ваше его использование не дружит со строкам определенной длины. Или со строками, размер которых что-то превышают.

DBAshnikт.е. ошибка на уровне MsSQL происходит, а не на уровне java/talend
То, что у вас в каком-то фреймворке закрывается соединение, не значит, что ошибка происходит на уровне MsSQL. И это никак не доказывает ваша шикарная аргументация, которая не учитывае, что view является по сути сохраненным на стороне сервера текстом запроса, выполнение которого практически ничем не отличается от ситуации, если его прислать в исходном виде.

И в целом, вопросы про то, как заставить фреймворк java дружить с MSSQL, лучше спрашивать в разделе java.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989121
DBAshnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
какой провайдер используете для соединения с сервером SQL?


Talend 7.1.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989128
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik,

согласен с ораторами, что FW может падать с внутренним исключением из-за переполнения типа.

авторeplicate() не дружит с len(someField)
У всех дружит почему-то.
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989129
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какая макс и мин длина поля самфилд? Наллы есть?
...
Рейтинг: 0 / 0
разница в поведении: SQL Server 2016 vs SQL Server 2019
    #39989136
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBAshnik
подскажите _пожалуйста_ что делать новичку в MSSQL!
При чём тут MSSQL???
Вам просто нужно отладить свою программу, которая закрывает коннект.

Давно посоветовали посмотреть профайлером, что бы вы убедились.
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / разница в поведении: SQL Server 2016 vs SQL Server 2019
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]