Вопросы с тегом «sql-server»

57
Скользящая сумма диапазона дат с использованием оконных функций

Мне нужно рассчитать скользящую сумму по диапазону дат. Чтобы проиллюстрировать это, используя пример базы данных AdventureWorks , следующий гипотетический синтаксис сделал бы именно то, что мне нужно: SELECT TH.ProductID, TH.TransactionDate, TH.ActualCost, RollingSum45 = SUM(TH.ActualCost) OVER (...

56
В чем разница между «записью» и «строкой» в SQL Server?

Был довольно безобидный вопрос о добавлении даты и времени в SQL Server, который вызвал довольно увлекательные таксономические дебаты. Итак, как мы можем различать эти термины и как мы их правильно используем? Ряд...

56
Почему ALTER COLUMN в NOT NULL вызывает огромный рост файла журнала?

У меня есть таблица с 64-метровыми строками, занимающая 4,3 ГБ на диске для своих данных. Каждая строка составляет около 30 байтов целочисленных столбцов плюс переменный NVARCHAR(255)столбец для текста. Я добавил столбец NULLABLE с типом данных Datetimeoffset(0). Затем я ОБНОВИЛ этот столбец для...

55
Каковы основные причины тупиков и их можно предотвратить?

Недавно одно из наших приложений ASP.NET показало ошибку взаимоблокировки базы данных, и меня попросили проверить и исправить ошибку. Мне удалось найти причину тупика - хранимой процедуры, которая строго обновляла таблицу внутри курсора. Я впервые вижу эту ошибку и не знаю, как ее эффективно...

55
Как можно заменить ISNULL () в предложении WHERE, в котором используются только литеральные значения?

Что это не о: Это не вопрос всеобъемлющих запросов, которые принимают пользовательский ввод или используют переменные. Речь идет строго о запросах, которые ISNULL()используются в WHEREпредложении для замены NULLзначений канареечным значением для сравнения с предикатом, а также о различных способах...

53
Как объединить таблицу с табличной функцией?

У меня есть пользовательская функция: create function ut_FooFunc(@fooID bigint, @anotherParam tinyint) returns @tbl Table (Field1 int, Field2 varchar(100)) as begin -- blah blah end Теперь я хочу присоединиться к этому на другом столе, вот так: select f.ID, f.Desc, u.Field1, u.Field2 from Foo f...

53
Передача параметров массива в хранимую процедуру

У меня есть процесс, который захватывает кучу записей (1000-х) и оперирует ими, и когда я закончу, мне нужно пометить большое количество их как обработанных. Я могу указать это большим списком идентификаторов. Я пытаюсь избежать шаблона «обновления в цикле», поэтому я хотел бы найти более...

52
Огромное замедление запроса SQL Server при добавлении подстановочного знака (или верхней части)

У меня есть зоопарк из 20 миллионов животных, которые я отслеживаю в своей базе данных SQL Server 2005. Приблизительно 1% из них - черные, и приблизительно 1% из них - лебеди. Я хотел получить подробную информацию обо всех черных лебедях и поэтому, не желая забивать страницу результатов, которую я...

52
Есть ли какая-либо польза от SCHEMABINDING помимо функции Halloween Protection?

Общеизвестно, что SCHEMABINDINGфункция может избежать ненужной буферизации в планах обновления: Если вы используете простые пользовательские функции T-SQL, которые не касаются каких-либо таблиц (т. Е. Не обращаются к данным), убедитесь, что вы указали эту SCHEMABINDINGопцию во время создания...

51
Почему ORDER BY не принадлежит представлению?

Я понимаю, что вы не можете иметь ORDER BY в виду. (По крайней мере, в SQL Server 2012 я работаю с) Я также понимаю, что «правильный» способ сортировки представления заключается в том, чтобы ORDER BYобойти SELECTоператор, запрашивающий представление. Но, будучи относительно новым для практического...

50
Какой самый простой способ создать временную таблицу в SQL Server, которая может содержать результат хранимой процедуры?

Много раз мне нужно написать что-то вроде следующего при работе с SQL Server. create table #table_name ( column1 int, column2 varchar(200) ... ) insert into #table_name execute some_stored_procedure; Но создать таблицу с точным синтаксисом в результате хранимой процедуры - утомительная задача....

50
Каковы объективные бизнес-причины для предпочтения SQL Server 2012 над 2008 R2?

Моя компания принимает решение о покупке SQL Server 2012 Denali или SQL Server 2008 R2 для нового сервера базы данных. Я ищу объективные причины для выбора одного над другим. Наши требования: Стандартная версия (по финансовым причинам и из-за отсутствия необходимости в корпоративных функциях)...

49
Почему бы мне НЕ использовать опцию SQL Server «оптимизировать для специальных рабочих нагрузок»?

Я читал несколько замечательных статей, касающихся кэширования планов SQL Server, таких как эта: http://www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/ Почему даже есть опция «оптимизировать для специальных рабочих нагрузок»? Разве это не должно быть всегда?...

48
Разница в производительности для COALESCE и ISNULL?

Я видел, что многие люди используют функцию COALESCE вместо ISNULL. По результатам поиска в Интернете я обнаружил, что COALESCE - это стандарт ANSI, поэтому есть преимущество в том, что мы знаем, чего ожидать при его использовании. Тем не менее, ISNULL кажется легче читать, так как кажется более...

48
Как объединить дату и время с datetime2 в SQL Server?

Учитывая следующие компоненты DECLARE @D DATE = '2013-10-13' DECLARE @T TIME(7) = '23:59:59.9999999' Как лучше всего объединить их, чтобы получить DATETIME2(7)результат со стоимостью '2013-10-13 23:59:59.9999999'? Некоторые вещи, которые не работают, перечислены ниже. SELECT @D + @T Дата типа...