|
1 / 1 / 0
Регистрация: 31.12.2020
Сообщений: 86
|
||||||
Произойдет усечение строковых или двоичных данных в столбце29.12.2021, 11:30. Показов 6550. Ответов 15
Метки нет (Все метки)
System.Data.SqlClient.SqlException: "Произойдет усечение строковых или двоичных данных в столбце "password" таблицы "some.dbo.bs_user". Усеченное значение: "dtRkkULQXyqyLyN".
0
|
||||||
| 29.12.2021, 11:30 | |
|
Ответы с готовыми решениями:
15
BULK INSERT Ошибка преобразования массовой загрузки данных (усечение) в строке 1, столбце 2 Сложение строковых переменных в столбце
|
|
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
|
|
| 29.12.2021, 11:52 | |
|
chukaz, подсчитайте сколько символов вы в пароле использовали и сколько помещается в поле в таблице.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||||||
| 29.12.2021, 13:25 | ||||||
0
|
||||||
|
Администратор
|
|
| 29.12.2021, 14:36 | |
|
MsGuns, nvarchar(max) тут явно избыточен. И это не говоря о том что ТСу следует хранить хеш пароля.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 29.12.2021, 15:43 | |
|
0
|
|
|
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
|
|
| 29.12.2021, 15:48 | |
|
MsGuns, с полями такого размера сложно использовать индексы) Да и маленькие поля хранятся на странице с записью, а не отдельно, как большие. Разница не бог весть какая, но есть.
0
|
|
|
Администратор
|
||
| 29.12.2021, 15:49 | ||
|
Я знаю что nvarchar(max) хранится отдельно от других данных строки (т.е. row) что ухудшает производительность. И их нужно использовать только когда необходимо в самом деле хранить очень длинные строки. Имя, логин и пароль в эту категорию не входят.
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 29.12.2021, 16:04 | ||
![]() Еще много лет назад один очень грамотный человек объяснил мне, что бояться max в варчарах не следует ибо серверы "заточены" на то, чтобы работать с ними быстро. Ограничения ставятся для того, чтобы исключить неверные данные (валидация на сервере) - и только. В данном случае, возможно, Вы правы, ибо слишком длинные пароли или логины не нужны априори. С точки зрения скорости обработки поисков и выборок max если и влияет, то мизерно. По крайней мере я это не замечал ни разу за 10 лет работы с разными серверами (Interbase/Firebird, MS SQL, PostgreSQL, Oracle, MySQL). А вот индексы - это да. Особенно если межтабличные связи построены на символьных полях и для скорости для этих полей строятся индексы. Но, ИМХО, сама по себе такая ситуация - результат не очень грамотного (если сказать мягко) проектирования БД.
0
|
||
|
Администратор
|
|||
| 29.12.2021, 16:11 | |||
|
0
|
|||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
||
| 29.12.2021, 16:17 | ||
|
Простой пример.
Есть таблица с 100 символьными колонками, имеющими, допустим ограничение 100 символов. Число записей - 1млн. Для того, чтобы перебрать их все для выборки только по одной колонке, серверу нужно считать их все. Пусть средний коэффициент заполненности полей 50%. Добавим еще коэффициент сжатия - в результате получим что-то около 30 реальных байтов на каждое поле. В результате получим 30 * 100 * 1млн = 3 гига байт, и это не считая других полей таблицы, не символьных. В случае же варчара данные для проверки будут считываться только по одной колонке. Далее понятно ![]() Добавлено через 45 секунд
0
|
||
|
Администратор
|
||
| 29.12.2021, 16:30 | ||
|
0
|
||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 29.12.2021, 16:30 | |
|
И еще один пример.
Когда я работал на большом заводе, то были вынуждены вести лог для нескольких десятков основных таблиц , содержащих информацию с документов. Лог был один, универсальный, который содержал длинные записи: старое значение-новое значение для каждого поля измененной таблицы, id ПК, данные пользователя, дата и время, специальная информация - всего с десятка полтора-два полей. За год таких записей в логе набиралось около 10 млн, а то и больше. Учитывая, что в лог писалось в триггерах чуть ли не по каждому "чиху" пользователей (а их было около тысячи по заводу), вся система стала подтормаживать. И тогда мы попробовали заменить чары на варчары. Проблема ушла
0
|
|
|
Администратор
|
|
| 29.12.2021, 16:47 | |
|
MsGuns, я понял. Мы про немного разные вещи говорим. Я имел в виду только избыточность (max) типов для задачи ТС. Вы же говорили про char vs varchar.
0
|
|
|
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
|
|||
| 29.12.2021, 17:02 | |||
|
0
|
|||
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 29.12.2021, 17:05 | |
|
0
|
|
|
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
|
|
| 29.12.2021, 17:06 | |
|
MsGuns, их там будет фиксированное количество вне зависимости от размера полей. Страница будет нарезана на порции по 8К. И меньше, чем страницами, SQL Server данные не читает.
0
|
|
| 29.12.2021, 17:06 | |
|
Помогаю со студенческими работами здесь
16
Найти вероятность того, что в течение рабочего дня не произойдет остановки: а)хотя бы 1 станка б)2 или 4 станков
Обработка строковых данных обработка строковых данных Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|