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

Откуда:
Сообщений: 67
Какие таблицы хранят эти данные? И хранят ли вообще? Спасибо.
7 окт 09, 11:46    [7752309]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
INFORMATION_SCHEMA.TABLES, например.
7 окт 09, 11:47    [7752324]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
tpg
INFORMATION_SCHEMA.TABLES, например.
+
WHERE TABLE_TYPE='BASE TABLE'
7 окт 09, 11:49    [7752345]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
GaZone
Member

Откуда:
Сообщений: 67
Спасибо.
7 окт 09, 11:50    [7752349]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439

DECLARE @sysFL varchar(100)



drop table #temp



CREATE TABLE [#temp] (

	[Name] [nvarchar](100) ,

	[Rows] [char] (11) ,

	[Reserved] [varchar] (18) ,

	[Data] [varchar] (18) ,

	[index_size] [varchar] (18) ,

	[Unused] [varchar] (18) 

) ON [PRIMARY]



	DECLARE cursorsys CURSOR FOR 

	select sysobjects.name

	from sysobjects

	where sysobjects.xtype='U'



	OPEN cursorsys

	FETCH NEXT FROM cursorsys into @sysFL

	WHILE @@FETCH_STATUS = 0

	BEGIN

		INSERT into [#temp] EXECute sp_SpaceUsed @sysFL

		

		FETCH NEXT FROM cursorsys into @sysFL

			

	END

	CLOSE cursorsys

	DEALLOCATE cursorsys



select * from #temp order by convert(int,left(Data,LEN(Data)-3)) desc



select 'ALL DATABASE', sum(convert(int,left(Reserved,LEN(Reserved)-3))) AS 'Reserved',

	sum(convert(int,left(Data,LEN(Data)-3))) AS 'Data',

	sum(convert(int,left(index_size,LEN(index_size)-3))) AS 'index_size',

	sum(convert(int,left(Unused,LEN(Unused)-3))) AS 'Unused' from #temp 
7 окт 09, 11:50    [7752356]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
Влом регистрироваться
Guest
ТАРАКАН,

весьма небыстрый способ получить список таблиц :)
7 окт 09, 12:09    [7752505]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
Влом регистрироваться
ТАРАКАН,

весьма небыстрый способ получить список таблиц :)

так вроде был вопрос про список и храниться ли там что-то.
7 окт 09, 12:13    [7752541]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
GaZone
Member

Откуда:
Сообщений: 67
А чем получить список индексов таблицы?
7 окт 09, 12:25    [7752636]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
Вло регистрироваться
Guest
ТАРАКАН,

а, сорри, прочел только заголовок топика.

Только вот здесь длина поля неправильная
[Name] [nvarchar](100)

Надо не 100, а 128. И вообще, SYSNAME будет лучше.
7 окт 09, 12:26    [7752642]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
Влом регистрироваться
Guest
GaZone,

sys.indexes

RTFM System Views
7 окт 09, 12:26    [7752651]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
GaZone
А чем получить список индексов таблицы?


покажет только по пользовательским таблицам

SELECT     *
FROM         [sysindexes]
where name in (select sysobjects.name 
from sysobjects
where sysobjects.xtype='U')
7 окт 09, 12:52    [7752844]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
Влом регистрироваться
Guest
ТАРАКАН,

MSSQL 2000?
7 окт 09, 13:12    [7753021]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
Влом регистрироваться
ТАРАКАН,

MSSQL 2000?

не понял вопроса
7 окт 09, 13:19    [7753101]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
ТАРАКАН
Member

Откуда:
Сообщений: 439
ТАРАКАН
GaZone
А чем получить список индексов таблицы?


покажет только по пользовательским таблицам

SELECT     *
FROM         [sysindexes]
where name in (select sysobjects.name 
from sysobjects
where sysobjects.xtype='U')

ох да сорри это для 2000
7 окт 09, 13:34    [7753241]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
GaZone
Member

Откуда:
Сообщений: 67
Раз уж перешли на индексы в этой теме, подскажите плз. Делаю запрос ко всемй базе на процент фрагментации индекса, и получаю такой результат:
a.index_id, name, avg_fragmentation_in_percent
автор
2 _AccumR7931_ByRecorder_RN 0.783699059561128
2 _AccumR7931_ByRecorder_RN 60
2 _AccumR7931_ByRecorder_RN 0

Поясните плз, как один индекс может иметь разный процент фрагментации? Или это не один индекс? Если не один, то как мне найти найти тот у которого % фрагментации равен 60?
7 окт 09, 13:55    [7753430]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
GaZone
Раз уж перешли на индексы в этой теме, подскажите плз. Делаю запрос ко всемй базе на процент фрагментации индекса

А текст запроса вы предоставите ?
7 окт 09, 13:56    [7753438]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
GaZone
Member

Откуда:
Сообщений: 67
Glory
А текст запроса вы предоставите ?


SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (18,
     NULL, NULL, NULL,'DETAILED') AS a
    JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id
WHERE name='_AccumR7931_ByRecorder_RN'; 
GO
7 окт 09, 14:05    [7753509]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ну так вы читали про Scanning Modes прежде, чем задать параметер 'DETAILED' ?
7 окт 09, 14:12    [7753566]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
iljy
Member

Откуда:
Сообщений: 8711
GaZone,

добавьте в запрос поля index_depth и index_level
7 окт 09, 14:13    [7753583]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
stinggga
Member

Откуда:
Сообщений: 416
ТАРАКАН,
Сообщение 2812, уровень 16, состояние 62, строка 45
Could not find stored procedure 'sp_SpaceUsed'.
16 ноя 16, 16:11    [19900651]     Ответить | Цитировать Сообщить модератору
 Re: MSSQL2005: Как селектом получить список таблиц базы?  [new]
o-o
Guest
коллэйшен базы регистрозависимый (CS)?
нафиг писать заглавные там, где их нет
sp_spaceused
16 ноя 16, 16:25    [19900699]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить