powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выгрузка данных через Мастер импорта и экспорта
17 сообщений из 17, страница 1 из 1
Выгрузка данных через Мастер импорта и экспорта
    #39736594
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток
подскажите пожалуйста:
есть запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select 
       c.CloseDate as [Дата время]
      ,cl.id_tov_cl as [ИД товар] 
      ,cl.Quantity as [кол-во]
      ,cl.BasePrice as [цена по которой купил]
      ,cl.Price_retail as [цена реальная]
      ,c.ShopNo as [номер магазина]
      ,c.CashID as [номер кассы]
      ,c.CashCheckNo as [Номер чек]   
      ,cl.CashCheckLineNo as [Позиция в чеке]
from SMS_UNION..Checks (nolock) c
join SMS_UNION..CheckLine (nolock) cl on cl.CheckUID = c.CheckUID
where c.OperationType = 1 and c.CloseDate >= DATEADD(MONTH,-1,'20181122') and c.CloseDate < '20181122'



Если выполнить COUNT(*) выходит 62 522 447 кол-во записей
Но если выгрузить через мастер, то отчет показывает, что выгружено 62 525 305 строк
при этом повторений не может быть в строках (на всякий случай)

разделитель при выгрузке '|', в полях выборки нет символов перевода корретки и "|"

Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736615
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,
Есть возможность при выгрузке сделать пк или сгенерить row_number, а потом залить из полученного файла в табличку обратно и найти дубли?
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736618
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyama,
дубли убрать не проблема

мне интересно, знает кто-нибудь почему такое происходит?
может кто сталкивался
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736676
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

Не понял, зачем их убирать?
Вам же нужно разобраться что не так, а для этого надо найти что не так.
Может Вы банально грязные данные читаете, а потом их транзакция откатывает, кто ж знает
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736681
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyama,
вряд ли конечно, но это я проверю, спасибо (не подумал про это)
а еще есть варианты?
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736729
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня мысль - возможно глупая:
Код: sql
1.
c.CloseDate < '20181122'


Разное преобразование типов дат (левая часть преобразуется в Date или правая в datetime)
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736749
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kopelly,
в любом случае времени это им не добавляет
а closedate сам datetime
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736781
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,

между А и Б появляются новые записи в таблицах.
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736817
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

исключено, данные за предыдущие периоды не добавляются
на всякий перепроверил, сделал count(*) значение то же
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736832
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandist,
Прям заинтриговали.
Выгрузите данные в табличку.
Из таблички пакетом в файл.
Из файла обратно в другую табличку
Найти разницу.
Опубликовать шокирующие подробности в этой ветке. (Таблицы идентичны/Не идентичны/ Вот такая разница)

Делов меньше чем на полчаса на 62 млн строках
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39736949
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyama,
так и сделаю
в общем разберусь и отпишусь
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39737012
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistЕсли выполнить COUNT(*) выходит 62 522 447 кол-во записей
Но если выгрузить через мастер, то отчет показывает, что выгружено 62 525 305 строкЛибо для выгрузки и COUNT(*) используются зарные запросы, либо действительно между операциями происходит изменение количества записей.

Ещё может быть вариант, вы неправильно считаете количество выгруженных строк.

Ну и традиционно - запросы выполняются на разных серверах/БД :-)
Sandistпри этом повторений не может быть в строках (на всякий случай)Какая разница, в обоих случаях повторения не влияют на результат.
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39737219
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

alexeyvgЛибо для выгрузки и COUNT(*) используются зарные запросы, либо действительно между операциями происходит изменение количества записей

Нет, запросы те же самые, изменения не происходят (проверил)
alexeyvgЕщё может быть вариант, вы неправильно считаете количество выгруженных строк.

Масте дает отчет и я сужу по кол-ву выгруженных строк, кроме того после загрузки выполнили count(*) уже на др машине и там count соответсвует кол-ву выгрузки о которой говорил мастер
alexeyvgНу и традиционно - запросы выполняются на разных серверах/БД :-)

))
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39737228
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не стал смотреть какие именно чеки "лишние", так что не знаю конкретно что отличается
но сделал 2 вещи, выгрузил все чеки во временную таблицу и затем в файл - тут уже кол-во совпало
затем решил убрать (nolock) и выгрузить из основных таблиц и так же результат совпал
я сделал вывод, что мастеру не понравился nolock, хотя, хочу повторить, задним числом данные не меняются и мой count(*) совпал с тем, что я выполнял сегодня днем

Если кто знает почему так может быть я рад буду услышать, но в целом решил проблему так
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39737318
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandistя сделал вывод, что мастеру не понравился nolock, хотя, хочу повторить, задним числом данные не меняются и мой count(*) совпал с тем, что я выполнял сегодня днем

Если кто знает почему так может быть я рад буду услышать, но в целом решил проблему такКак ему может не понравиться nolock :-)

Очевидно, данные меняются во время выгрузки. Может, и неявно (например, происходит расщепление страниц при вставке или изменении данных за другие даты).
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39737355
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,
видимо так и есть, надо покурить nolock тщательнее

всем огромное спасибо что уделили время
...
Рейтинг: 0 / 0
Выгрузка данных через Мастер импорта и экспорта
    #39738076
DaniilSeryi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandistне стал смотреть какие именно чеки "лишние", так что не знаю конкретно что отличается
но сделал 2 вещи, выгрузил все чеки во временную таблицу и затем в файл - тут уже кол-во совпало
затем решил убрать (nolock) и выгрузить из основных таблиц и так же результат совпал
я сделал вывод, что мастеру не понравился nolock, хотя, хочу повторить, задним числом данные не меняются и мой count(*) совпал с тем, что я выполнял сегодня днем

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

Nolock чем хорош - можно не ожидать снятия с таблицы блокировок, наложенных другими транзакциями.
А чем плох - читает также "грязные данные". В общем - читаем https://docs.microsoft.com/ru-ru/sql/t-sql/statements/set-transaction-isolation-level-transact-sql?view=sql-server-2017
https://docs.microsoft.com/ru-ru/sql/t-sql/queries/hints-transact-sql-table?view=sql-server-2017
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выгрузка данных через Мастер импорта и экспорта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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