Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

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

Ветеран


Сообщения: 2099
Благодарности: 143


Конфигурация

Профиль | Отправить PM | Цитировать


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

-------
"Нет" - войне.


Отправлено: 06:54, 11-05-2015

 

Аватара для Arkalik

Новый участник


Сообщения: 47
Благодарности: 8

Профиль | Отправить PM | Цитировать


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

Отправлено: 08:03, 11-05-2015 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 2099
Благодарности: 143

Профиль | Отправить PM | Цитировать


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

-------
"Нет" - войне.


Отправлено: 08:05, 11-05-2015 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


__sa__nya, может эта статья на Хабре вам поможет?
Статья на MS View a List of Databases on an Instance of SQL Server
Код: Выделить весь код
USE AdventureWorks2012;
GO
SELECT name, database_id, create_date
FROM sys.databases ;
GO

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 11-05-2015 в 08:23. Причина: более правильные ссылки

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:19, 11-05-2015 | #4


Ветеран


Сообщения: 2099
Благодарности: 143

Профиль | Отправить PM | Цитировать


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, получение количества записей из кластерного индекса, операции с кучами) , но по моему вопросу ничего нет.

В общем вопрос открыт и актуален.

-------
"Нет" - войне.


Отправлено: 17:58, 11-05-2015 | #5


Аватара для User001

Ветеран


Сообщения: 740
Благодарности: 116

Профиль | Отправить PM | Цитировать


Цитата __sa__nya:
мне нужно список таблиц из конкретной БД, отсортированных по размеру »
Пример к MS SQL 2005 - не подходит?

Отправлено: 18:21, 11-05-2015 | #6


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


__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'

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Последний раз редактировалось lxa85, 11-05-2015 в 21:37. Причина: добавил stackoverflow

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:25, 11-05-2015 | #7


Аватара для Ink0gnit0

Новый участник


Сообщения: 8
Благодарности: 5

Профиль | Отправить PM | Цитировать


__sa__nya,
Код: Выделить весь код
USE <DBNAME>;

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

Последний раз редактировалось Ink0gnit0, 12-05-2015 в 19:46.


Отправлено: 09:21, 12-05-2015 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - MS SQL 2012 - вывести список таблиц отсортированных по размеру

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - Ошибка при установке MS SQL server express 2012 mobideer Программирование и базы данных 4 21-07-2017 16:36
Разное - Перенос БД из MS SQL 2012 в Windows Azure browser Другие серверные продукты 0 22-10-2013 15:26
MSFT SQL Server - Есть ли способ перейти с MS SQL 2005 на MS SQL 2000 elec Программирование и базы данных 10 18-04-2013 12:35
MSFT SQL Server - MS SQL 2008 + 1C, переиндексация таблиц art.andr Программирование и базы данных 1 08-10-2012 07:46




 
Переход