Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   MS SQL 2012 - вывести список таблиц отсортированных по размеру (http://forum.oszone.net/showthread.php?t=299605)

__sa__nya 11-05-2015 06:54 2505932

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

Arkalik 11-05-2015 08:03 2505934

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

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

__sa__nya 11-05-2015 08:05 2505935

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

lxa85 11-05-2015 08:19 2505938

__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


__sa__nya 11-05-2015 17:58 2506095

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 11-05-2015 18:21 2506098

Цитата:

Цитата __sa__nya
мне нужно список таблиц из конкретной БД, отсортированных по размеру »

Пример к MS SQL 2005 - не подходит?

lxa85 11-05-2015 21:25 2506153

__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 12-05-2015 09:21 2506279

__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


Время: 14:09.

Время: 14:09.
© OSzone.net 2001-