|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.04.2017, 10:53 | #1 |
Регистрация: 28.04.2017
Сообщений: 7
|
Реорганизация индексов
Здравствуйте, у меня есть два вопроса скажите как связать две команды ALTER через if/else и как поставить так, чтобы запрос работал допустим 20-го числа в 20 вечера?
select a.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'[dbo].[Manh_LOT]'), NULL, NULL, NULL) AS a if avg_fragmentation_in_percent>=30.0 then ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOT REBUILD WITH (FILLFACTOR = 90, SORT_IN_TEMPDB = ON); else ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOCATION REORGANIZE end; |
28.04.2017, 11:24 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
IF ... ELSE есть же в процедурном языке. Напиши sql-скрипт или процедуру и вызывай, используя sqlcmd и планировщик Windows
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.04.2017, 11:40 | #3 |
Регистрация: 28.04.2017
Сообщений: 7
|
Подскажите, пожалуйста, по синтаксису, сейчас этот скрипт с ошибками, как связать if/else с alter и как написать, чтобы он выполнялся в определенное время без задания.
|
28.04.2017, 11:45 | #4 |
Регистрация: 28.04.2017
Сообщений: 7
|
У меня есть две команды
--Перестроение ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOT REBUILD WITH (FILLFACTOR = 90, SORT_IN_TEMPDB = ON); GO --Реорганизация ALTER INDEX Manh_LOT_DATE_TIME_STAMP ON [dbo].Manh_LOCATION REORGANIZE GO их нужно связать в одну через if/else или мб нужно использовать case? |
28.04.2017, 12:45 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
28.04.2017, 12:50 | #6 |
Регистрация: 28.04.2017
Сообщений: 7
|
Без планировщика заданий, у нас очень большая база, есть таблицы которые обновляются каждые 15 минут, поэтому хотелось бы в самой процедуре написать, чтобы обновление индексов было в определенное время в определенный день. Буду очень благодарна, если подскажите как это сделать.
|
28.04.2017, 12:57 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если бы знал, то подсказал бы. А так не слышал о такой возможности
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
28.04.2017, 21:54 | #8 |
Пользователь
Регистрация: 11.04.2017
Сообщений: 64
|
А процедура с условием волшебным образом как и когда запускаться будет? Делайте джобик, и кормите ему процедуру-обертку с условием ребилда. Но по опыту, если ребилд нужен каждый день - стоит сменить программистов, которые создавали структуру и пишут процедурки. Хотя... может это 1с?
|
29.04.2017, 10:17 | #9 |
Регистрация: 28.04.2017
Сообщений: 7
|
Ребилд или реорганизацию индексов не нужно делать каждый день. Нужно делать раз в неделю в определенное время.
Смотрите, есть процедура которая тянет информацию с других источников каждые 15 минут,нужно в конце данной процедуре написать, что если такое-то число то сделать то-то или допустим, если сейчас 20-ое число то нужно выполнить такую-то команду. Нужно брать системное число и время, вот в этом вопрос, как это сделать. |
29.04.2017, 10:34 | #10 |
Пользователь
Регистрация: 11.04.2017
Сообщений: 64
|
Getdate () и datefropparts () если это ms sql могут помочь в решении, сравнивайте число, и запускайте. Но как по мне - это костыль. Работайте с джобами и планировщиком, как уже говорили.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перестановка индексов | Jevshot | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 28.10.2015 08:07 |
Много индексов + игнорирование индексов | Mr_freeman | SQL, базы данных | 5 | 06.08.2013 22:09 |
Реорганизация интерфейса | The_Immortal | C++ Builder | 3 | 10.05.2012 02:14 |
Создание индексов | Droid | SQL, базы данных | 5 | 02.02.2012 16:30 |
удаление индексов массива | TotKtoNado | БД в Delphi | 13 | 05.08.2011 17:03 |