У меня медленный запрос исполнительскую и надеялся кто-то с немного больше знаний в SQL может быть в состоянии помочь мне улучшить производительность:Удалить с WHERE - дата, время и сравнения строк - очень медленно
У меня есть 2 таблицы a Source и Common, я загружаю некоторые данные, которые содержат Date, Time и String (whch - имя сервера), плюс некоторые ..
Исходная таблица может содержать строки 40k + (имеет 30 нечетных столбцов , сочетание значений int, дат, времени и некоторых varchars (255)/(Max)
Я использую приведенный ниже запрос для удаления любых данных из Common, который находится в источнике:
'Delete from Common where convert(varchar(max),Date,102)+convert(varchar(max),Time,108)+[ServerName] in (Select convert(varchar(max),[date],102)+convert(varchar(max),time,108)+ServerName from Source where sc_status < 300)'
Источник Поля в этом формате:
- ServerName VARCHAR (255) IE SN1234
- Дата VARCHAR (255) IE 2012- 05-22
- Время VARCHAR (255) IE 08:12:21
Общий Поля в этом формате:
- ServerName VARCHAR (255) IE SN1234
- Дата публикации IE 2011-08-10
- Время Время (7) 14 т.е: 25: 34.0000000
Благодаря
Какая таблица есть? Обе эти метки говорят «Источник» ... и почему одна таблица хранит данные даты/времени как массивные строки? Каков их точный формат? Мы не можем догадываться об этом. Пожалуйста, покажите нам пример данных ... –
Почему вы используете поля varchar (255) для полей Date and Time? – MichelZ
Исходная таблица хранит их как varchars из-за logparser и того, как мы его использовали. Я обновил сообщение для форматов Common Table. Также добавлен пример рядом с каждым. Надеюсь, что это помогает – TomEaton