Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
sql 2005

программисты нашего ПО сделали 25 БД
подскажите пожалуйста

1) как в цикле пройтись по всем базам?

а затем
2) сделать реиндекс\ребилд по базам и определить время каждой операции
3) как определить свободное место (в %)

заранее спасибо
31 июл 12, 08:48    [12938284]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
qwertEHOK,
qwertEHOK
1) как в цикле пройтись по всем базам?

а затем
2) сделать реиндекс\ребилд по базам и определить время каждой операции

Планы обслуживания помогут.
qwertEHOK
как определить свободное место (в %)

где?
31 июл 12, 08:51    [12938293]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
denis2710,

я знаю про планы обслуживания, но там только "все базы пользователя" и прочее
а мне нужно ИМЕННО в цикле по каждой базе

свободное место которое показывается в меню "Сжать фалы"
то есть размер базы 20 гигов, свободное место 5 (20%)

я хочу на основе этого делать shrinkfile
31 июл 12, 09:02    [12938319]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
qwertEHOK
нужно ИМЕННО в цикле по каждой базе
sp_MSforeachdb
31 июл 12, 09:18    [12938371]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
iap,

это безусловное выполнение, а я хотел по четным запускать, а по нечетным не запускать
это можно сделать только в цикле
31 июл 12, 09:35    [12938448]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
qwertEHOK
я хотел по четным запускать, а по нечетным не запускать
??
31 июл 12, 09:38    [12938458]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
iap,

у меня 25 баз
ДВАДЦАТЬ ПЯТЬ

самая большая 170 гигов, еще 7 по 80, остальные от 20 до 5
у меня физически за ночь не делается реиндекс

поэтому сейчас 2 огромных скрипта для четных дней и нечетных

а я еще может захочу по понедельникам делать одно, по вторникам другое.
конечно в планах обслуживания можно сделать, но для 25 баз это долго
31 июл 12, 09:47    [12938500]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
shaden
Member

Откуда: Башкортостан
Сообщений: 165
Как было сказано выше, сделайте план обслуживания нормальный и спите спокойно.
31 июл 12, 09:55    [12938534]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
Glory
Member

Откуда:
Сообщений: 104751
qwertEHOK
поэтому сейчас 2 огромных скрипта для четных дней и нечетных

Интересно, и чем отличаются эти скрипты ?
В одном прописано: "1,3,5,7,... - это нечетные числа", а в другом:"2,4,6,... - это четные числа " ?

qwertEHOK
а я еще может захочу по понедельникам делать одно, по вторникам другое.
конечно в планах обслуживания можно сделать, но для 25 баз это долго

Долго что ? Составить планы на разные случаи и зашедулить их ?
31 июл 12, 10:41    [12938808]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
qwertEHOK,

Может создать группу серверов (добавить туда 25 баз), для выполнения одних и тех же скриптов на них?
31 июл 12, 10:53    [12938909]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
уважаемые, я спросил то что спросил

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

знаете - подскажите пожалуйста
повторяться не надо, если не найду код - буду планы обслуживания строить
31 июл 12, 10:59    [12938953]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
Glory
Member

Откуда:
Сообщений: 104751
qwertEHOK
знаете - подскажите пожалуйста

Подсказать что ?
Где взять синтаксис команд TSQL ?
31 июл 12, 11:00    [12938969]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
qwertEHOK
я хочу на основе этого делать shrinkfile
Шринк, шринк, шринк... Что же вы все свои руки тянете к этой команде, не понимая эффекта, который она оказывает в итоге на данные в базе, на сами файлы? Почему в вашей голове не рождается мысль, что сервер не просто так "разжимает" файлы, и что это как-то тупо - он пыжится и увеличивает файлы, а вы ему говорите "нет, жми назад", после чего он пыжится и уменьшает. Не умно было бы избавить сервер сразу от двух "пыжиться"?
31 июл 12, 11:04    [12939002]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Glory,

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

и тд..
31 июл 12, 11:04    [12939010]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
Glory
Member

Откуда:
Сообщений: 104751
qwertEHOK
я не знаю, яндекс показывает кучу всего, но не то что нужно

Используйте оригинальный хелп продукта. Вам нужна команда DECLARE CURSOR
31 июл 12, 11:06    [12939022]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
Гавриленко Сергей Алексеевич
qwertEHOK
я хочу на основе этого делать shrinkfile
Шринк, шринк, шринк... Что же вы все свои руки тянете к этой команде, не понимая эффекта, который она оказывает в итоге на данные в базе, на сами файлы? Почему в вашей голове не рождается мысль, что сервер не просто так "разжимает" файлы, и что это как-то тупо - он пыжится и увеличивает файлы, а вы ему говорите "нет, жми назад", после чего он пыжится и уменьшает. Не умно было бы избавить сервер сразу от двух "пыжиться"?


я бы с удовольствием не жал ничего, но у меня места нет :)
винты в планах, но это не скоро
31 июл 12, 11:15    [12939102]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
trew
Member

Откуда: Москва
Сообщений: 2646
qwertEHOK,

12876004
Этот скрипт нужно доработать, о чем там ниже и написано.
31 июл 12, 11:20    [12939141]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
qwertEHOK
iap,

у меня 25 баз
ДВАДЦАТЬ ПЯТЬ
Вы меня пугаете что ли?
25 баз - ерунда какая!
Работать что ли не хотите? Так и скажите.
Не понимаю, чем не подходит sp_MSforeachdb для перебора всех баз и выполнения скрипта на тех из них, которые нужны.
В конце концов, выполните
SELECT OBJECT_DEFINITION(OBJECT_ID(N'sp_MSforeachdb'))
SELECT OBJECT_DEFINITION(OBJECT_ID(N'sp_MSforeach_worker'))
, чтобы посмотреть, как Microsoft выполняет Вашу задачу.
31 июл 12, 11:24    [12939172]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
iap
Вы меня пугаете что ли?
25 баз - ерунда какая!
Работать что ли не хотите? Так и скажите.


если не нравится тема - не пишите

iap
Не понимаю, чем не подходит sp_MSforeachdb для перебора всех баз и выполнения скрипта на тех из них, которые нужны.


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

почему все дают какие-то советы, которые не решают проблему?
31 июл 12, 11:42    [12939318]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
qwertEHOK
iap
Вы меня пугаете что ли?
25 баз - ерунда какая!
Работать что ли не хотите? Так и скажите.


если не нравится тема - не пишите

iap
Не понимаю, чем не подходит sp_MSforeachdb для перебора всех баз и выполнения скрипта на тех из них, которые нужны.


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

почему все дают какие-то советы, которые не решают проблему?
Так напишите курсор по нужным базам из sys.databases
и пройдитесь по нему циклом.
Где проблема-то?
Так, кстати, делается и в sp_MSforeachdb - достаточно выполнить предложенные SELECTы.
31 июл 12, 11:48    [12939381]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
iap,

в том то и проблема что я не писал никогда курсоры
я же и прошу пример кода
31 июл 12, 11:53    [12939420]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
Glory
Member

Откуда:
Сообщений: 104751
qwertEHOK
в том то и проблема что я не писал никогда курсоры
я же и прошу пример кода

И хелпы никогда не читал с примерами ?
31 июл 12, 11:55    [12939439]     Ответить | Цитировать Сообщить модератору
 Re: помогите с кодом  [new]
nezhadnye_my
Guest
курсор по четным

declare @rn int;
declare @db_name sysname;

DECLARE db_cursor_chet CURSOR FOR
select rn, Name 
from (SELECT row_number() over (order by Name) as rn, Name
      FROM sys.databases)t
where rn % 2 = 0
OPEN db_cursor_chet;

FETCH NEXT FROM db_cursor_chet 
INTO @rn, @db_name;

WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT CAST(@rn AS VARCHAR(3)) + ' ' + @db_name;
	FETCH NEXT FROM db_cursor_chet 
	INTO @rn, @db_name;
END
CLOSE db_cursor_chet;
DEALLOCATE db_cursor_chet;
31 июл 12, 14:01    [12940703]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить