MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Ответить
Аватара пользователя
__sa__nya

MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение __sa__nya »

Доброе время суток. Нужно вывести список таблиц для БД отсортированных по размеру. В SQL Server Management Studio ничего подобного не нашел. Подскажите как это реализовать запросами.
Аватара пользователя
Arkalik

Re: MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение Arkalik »

__sa__nya, Сортировка выполняется с командой ORDER BY:



Код:

Код: Выделить всё

SELECT * FROM Имя_таблицы ORDER BY Имя_атрибута (ASC - по возрастанию, DESC - по убыванию)
Аватара пользователя
__sa__nya

Re: MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение __sa__nya »

Arkalik, по-моему ваш запрос выводит данные из таблицы, а мне нужно вывести список таблиц из Базы Данных .
Аватара пользователя
__sa__nya

Re: MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение __sa__nya »

lxa85, код который вы привели, выводит список всех БД, мне нужно список таблиц из конкретной БД, отсортированных по размеру. Об этом говорится в статье на MS которую вы привели:


Цитата:



This example returns a list of databases on the instance of SQL Server. The list includes the names of the databases, their database IDs, and the dates when the databases were created.



В статье на Хабре информации много (количество записей в таблице, недокументированная функция sp_msForEachTable, получение количества записей из кластерного индекса, операции с кучами) , но по моему вопросу ничего нет.



В общем вопрос открыт и актуален.
Аватара пользователя
User001

Re: MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение User001 »

Цитата __sa__nya:



мне нужно список таблиц из конкретной БД, отсортированных по размеру
MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру




Пример
к MS SQL 2005 - не подходит?
Аватара пользователя
lxa85

Re: MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение lxa85 »

__sa__nya, ok, Google

Как в MS SQL получить список всех таблиц



Цитата:



SELECT name FROM dbo.sysobjects where xtype = 'U' order by name



Вам бы посмотреть, какие данные вы можете получить из системных таблиц MS SQL (
sys.objects
и др.

Там масса всего интересного.

how-do-i-get-list-of-all-tables-in-a-database-using-tsql




Код:

Код: Выделить всё

SELECT * FROM information_schema.tables



Код:

Код: Выделить всё

SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
Аватара пользователя
Ink0gnit0

Re: MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Сообщение Ink0gnit0 »

__sa__nya,



Код:

Код: Выделить всё

USE ;
CREATE TABLE #TableState (
    name varchar(255),
    [rows] int,
    reserved varchar(255),
    data varchar(255),
    index_size varchar(255),
    unused varchar(255))
EXEC sp_msforeachtable @command1="INSERT INTO #TableState EXEC sp_spaceused [?]"
SELECT 
name, 
rows, 
CONVERT(bigint, REPLACE(reserved, 'KB', '')) reserved_KB, 
CONVERT(bigint, REPLACE(data, 'KB', '')) data_KB, 
CONVERT(bigint, REPLACE(index_size, 'KB', '')) index_size_KB, 
CONVERT(bigint, REPLACE(unused, 'KB', '')) unused_KB 
FROM #TableState 
ORDER BY data_kb DESC
DROP TABLE #TableState

MS SQL 2005
Ответить

Вернуться в «Программирование и базы данных»