--得到資料庫中所有表的空間/記錄情況
exec sp_MSForEachTable
@precommand=N'
create table ##(
id int identity,
表名 sysname,
欄位數 int,
記錄數 int,
保留空間 Nvarchar(10),
使用空間 varchar(10),
索引使用空間 varchar(10),
未用空間 varchar(10))',
@command1=N'insert ##(表名,記錄數,保留空間,使用空間,索引使用空間,未用空間) exec sp_spaceused ''?''
update ## set 欄位數=(select count(*) from syscolumns where id=object_id(''?''))
where id=scope_identity()', @postcommand=N'select * from ## order by id drop table ##'
『貳』 用一條sql語句查詢一個表兩欄位值的大小
問下樓主你是要查出來還是要比較啊。
select 欄位1,欄位2 from table
上面是比較簡單的查法,下面的要復雜一點。不過還好拉。
declare @one int;
select @one=upid from users where id=10;
declare @two int;
select @two=urid from users where id=10
if ( @one>@two )
begin
print '欄位一比欄位二大'
end
else
begin
print '欄位二比欄位一大'
end
希望對你有幫助。
『叄』 oracle中如何查看一個表所佔空間的大小,用一條sql
每張表都是作為「段」來存儲的,可以通過user_segments視圖查看其相應信息,例:
SELECT segment_name AS TABLENAME,BYTES B,BYTES/1024 KB,BYTES/1024/1024 MB FROM user_segments WHERE segment_name='EP_SC106'
『肆』 sql表中相同數據查詢出來後如何比較某一列的大小,然後取這一列中較大的保存到另外一張表
個人覺得,創建一個視圖view比較好,要不這樣太亂了,我看了好久才稍微知道點你的思路。。。
在view中,用group by和order by 定義出序列,就出現你想要的排列順序啦~然後就可以拿出你想要的一行數據了
language songname singer exist col001 col002
02 祝酒歌 刀郎 1 dvd403822.mpg 178944004
02 祝酒歌 刀郎 1 dvd514336.mpg 45788780
就說這個,group by language ,songname,singer,exist,col001,col002
當前面的列都一樣的時候,都會再一個段中了,再加上order by 的約束最後一列也會按照順序排列出來了
你試試吧~
『伍』 sqlserver中如何查詢某幾個表目前的空間大小
創建存儲過程:
CREATE PROCEDURE [dbo].[sys_viewTableSpace]
AS
BEGIN
SET NOCOUNT ON;
CREATE TABLE [dbo].#tableinfo(
表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
記錄數 [int] NULL,
預留空間 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
使用空間 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
索引佔用空間 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
未用空間 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL
)
insert into #tableinfo(表名, 記錄數, 預留空間, 使用空間, 索引佔用空間, 未用空間)
exec sp_MSforeachtable "exec sp_spaceused '?'"
select * from #tableinfo
order by 記錄數 desc
drop table #tableinfo
END
使用的時候直接 :exec sys_viewtablespace
『陸』 sql如何比較某一列的大小,然後取這一列中較大的保存到另外一張表
update表BsetTBMJ=b.TBMJ
from表Bainnerjoin
(selectJBNTTBBH,MAX(TBMJ)ASTBMJfrom表AgroupbyJBNTTBBH)b
ona.JBNTTBBH=b.JBNTTBBH
『柒』 如何使用SQL語句查詢資料庫及表的空間容量
--1、查看錶空間的名稱及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
--2、查看錶空間物理文件的名稱及大小
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3.查看所有表空間使用情況
select
b.file_id 文件ID號,
b.tablespace_name 表空間名,
b.bytes/1024/1024||'M'位元組數,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M' 已使用,
sum(nvl(a.bytes,0))/1024/1024||'M' 剩餘空間,
round(100 - sum(nvl(a.bytes,0))/(b.bytes)*100,2)|| '%' 佔用百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id;
總有一款適合你!
『捌』 如何用SQL語句比較兩個表 特定的值的大小
SELECT CASE WHEN A.噸數>B.噸數總和 THEN A.噸數 ELSE B.噸數總和 END
FROM A,B
WHERE A.ID=B.ID
『玖』 資料庫oracle11G,如何通過plsql查詢表空間大小,如何通過PLSQL把一個表空間的大小設置成自動擴展
sql語句
1.查詢表空間大小
select tablespace_name , sum(bytes/1024/1024) sizeM from dba_data_files group by tablespace_name ;
2.設置數據文件為自動拓展
alter database datafile n autoextend on ;
不知道你說的兩個東西有什麼關聯性。
下面是設置全部數據文件為自動拓展的plsql匿名塊:
begin
forrecin(selectfile_id,autoextensiblefromdba_data_fileswhereautoextensible='NO')loop
executeimmediate'alterdatabasedatafile'||rec.file_id||'autoextendon';
endloop;
end;