|
30.01.2006, 11:00 | #1 |
Участник
|
удаление больших таблиц
Коллеги - не подскажите что за таблица SysSearchRef ?
И что будет если удалить ее содержимое, у нас она занимает много места и надо как то очищать таблицы |
|
30.01.2006, 11:19 | #2 |
NavAx
|
Вот тута все написано: http://axapta.mazzy.ru/lib/dbgrowthsolution/
|
|
30.01.2006, 11:55 | #3 |
Member
|
Это поисковый индекс online help и корпоративного портала.
Если вы не используете корпоративный портал, то это должна относительно не самая громоздкая таблица. А вы таблицы по какому критерию меряете?
__________________
С уважением, glibs® |
|
30.01.2006, 14:54 | #4 |
Участник
|
по к-ву записей.
Спасибо за ответы |
|
30.01.2006, 15:03 | #5 |
Member
|
Цитата:
Сообщение от Nikolaich
...по к-ву записей...
Вот так, например. sp_msforeachtable "sp_spaceused '?'" Или отчет Администрирование\Отчеты\Размер компании. Последний строится по конкретной компании (если у вас их много, то придется складывать). SysSearchRef будет в компании DAT.
__________________
С уважением, glibs® |
|
30.01.2006, 15:56 | #6 |
Участник
|
Цитата:
Сообщение от glibs
sp_msforeachtable "sp_spaceused '?'"
. еще бы как-нить результаты можно было бы фильтрануть по размеру. Не подскажете? Буду безмерно благодарен |
|
30.01.2006, 21:04 | #7 |
Member
|
Цитата:
Сообщение от Artild
...
А почему нет функции sp_msforeachtable в документации Sql Book?? ... Цитата:
Сообщение от Artild
...
еще бы как-нить результаты можно было бы фильтрануть по размеру. Не подскажете? ... Хотя скрипт от Roman777 тоже неслабый.
__________________
С уважением, glibs® |
|
31.01.2006, 11:45 | #8 |
Участник
|
Цитата:
Сообщение от Artild
Ух тыы. А почему нет функции sp_msforeachtable в документации Sql Book??
еще бы как-нить результаты можно было бы фильтрануть по размеру. Не подскажете? Буду безмерно благодарен Фильтрануть? Ну можно во временную табличку результат залить...А еще проще copy/paste результатов в excel сделать, а там фильтруйте... |
|
30.01.2006, 16:36 | #9 |
NavAx
|
Можно так:
DECLARE @pagesizeKB int SELECT @pagesizeKB = low / 1024 FROM master.dbo.spt_values WHERE number = 1 AND type = 'E' SELECT table_name = OBJECT_NAME(o.id), rows = i1.rowcnt, reservedKB = (ISNULL(SUM(i1.reserved), 0) + ISNULL(SUM(i2.reserved), 0)) * @pagesizeKB, dataKB = (ISNULL(SUM(i1.dpages), 0) + ISNULL(SUM(i2.used), 0)) * @pagesizeKB, index_sizeKB = ((ISNULL(SUM(i1.used), 0) + ISNULL(SUM(i2.used), 0)) - (ISNULL(SUM(i1.dpages), 0) + ISNULL(SUM(i2.used), 0))) * @pagesizeKB, unusedKB = ((ISNULL(SUM(i1.reserved), 0) + ISNULL(SUM(i2.reserved), 0)) - (ISNULL(SUM(i1.used), 0) + ISNULL(SUM(i2.used), 0))) * @pagesizeKB FROM sysobjects o LEFT OUTER JOIN sysindexes i1 ON i1.id = o.id AND i1.indid < 2 LEFT OUTER JOIN sysindexes i2 ON i2.id = o.id AND i2.indid = 255 WHERE OBJECTPROPERTY(o.id, N'IsUserTable') = 1 --same as: o.xtype = %af_src_str_2 OR (OBJECTPROPERTY(o.id, N'IsView') = 1 AND OBJECTPROPERTY(o.id, N'IsIndexed') = 1) GROUP BY o.id, i1.rowcnt ORDER BY 3 DESC но это уже www.sql.ru |
|
31.01.2006, 13:35 | #10 |
Участник
|
ага. давненько я свои скилы в SQL Server не качал, о всем известной недокументированной функции ни слухом, ни духом. копи паст не помог это функцию я уж конечно догадался попробовать в случае если в грид результаты выдавать, во-первых, выдает сообщение о нехватке ресурсов для завершения запрос, во-вторых, для каждой таблицы отдельная таблица в результате в гриде, можно выделить только одну. когда в текст выдаю, то тупая вставка в эксель не совсем красиво происходит, дополнительные необходимы удары в бубен ну да ладно, и на том все спасибо, сейчас это задача чисто инициативная и не критичная, как-нить потом сам разберусь
|
|