當前位置:首頁 » 編程語言 » sql提供的統計信息流已損壞
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql提供的統計信息流已損壞

發布時間: 2022-04-29 18:55:35

『壹』 sql數據統計分析問題

給你個示例腳本

declare@AAtable(yearsint,numberint)
insertinto@AAvalues(2014,45201521)
insertinto@AAvalues(2014,45201522)
insertinto@AAvalues(2014,45201523)
insertinto@AAvalues(2014,45201524)
insertinto@AAvalues(2014,45201525)
insertinto@AAvalues(2014,45201526)
insertinto@AAvalues(2014,45201527)
insertinto@AAvalues(2014,45201528)
insertinto@AAvalues(2014,45201532)
insertinto@AAvalues(2014,45201535)
insertinto@AAvalues(2014,45201536)
insertinto@AAvalues(2013,45070121)
insertinto@AAvalues(2013,45070122)
insertinto@AAvalues(2011,45010022)
insertinto@AAvalues(2011,45010023)
insertinto@AAvalues(2012,48038811)
insertinto@AAvalues(2012,48038815)
--select年份,CAST(start_numasvarchar)+'-'+CAST(end_numasvarchar)as票段號,份數from(
--selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
--from
--(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
--from@AA)m
--groupbygrp,years)t
--wherestart_num!=end_num
--unionall
--select年份,CAST(start_numasvarchar)as票段號,份數from(
--selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
--from
--(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
--from@AA)m
--groupbygrp,years)t
--wherestart_num=end_num

--orderby年份,票段號asc
select年份,casewhenstart_num!=end_numthenconvert(varchar(20),start_num)+'-'+convert(varchar(20),end_num)elseconvert(varchar(20),start_num)endas票段號,份數from(
selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份數
from
(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
from@AA)m
groupbygrp,years)t

orderby年份,票段號asc

『貳』 sql 查詢 統計

createtableclient

(

clientidintnotnull,

groupidintnotnull,

constraintPK_CLIENTprimarykey(clientid,groupid)

);

createtableclienthistory

(

clientidintnotnull,

clientstatusint,

timestampsvarchar2(8),

constraintPK_CLIENTHISTORYprimarykey(clientid)

);

createtableclientgroup

(

groupidintnotnull,

groupnamevarchar2(10),

constraintPK_CLIENTGROUPprimarykey(groupid)

);

insertintoCLIENT(CLIENTID,GROUPID)

values(1,1);

insertintoCLIENT(CLIENTID,GROUPID)

values(2,1);

insertintoCLIENT(CLIENTID,GROUPID)

values(3,1);

insertintoCLIENT(CLIENTID,GROUPID)

values(4,1);

insertintoCLIENT(CLIENTID,GROUPID)

values(5,1);

insertintoCLIENT(CLIENTID,GROUPID)

values(6,2);

insertintoCLIENT(CLIENTID,GROUPID)

values(7,2);

insertintoCLIENT(CLIENTID,GROUPID)

values(8,2);

insertintoCLIENT(CLIENTID,GROUPID)

values(9,3);

insertintoCLIENT(CLIENTID,GROUPID)

values(10,3);

insertintoCLIENTGROUP(GROUPID,GROUPNAME)

values(1,'groupname1');

insertintoCLIENTGROUP(GROUPID,GROUPNAME)

values(2,'groupname2');

insertintoCLIENTGROUP(GROUPID,GROUPNAME)

values(3,'groupname3');

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(1,1,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(2,0,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(3,1,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(4,0,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(5,0,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(6,1,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(7,1,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(8,1,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(9,0,null);

insertintoCLIENTHISTORY(CLIENTID,CLIENTSTATUS,TIMESTAMPS)

values(10,1,null);

selectcg.groupid,cg.groupname,(sum(ch.clientstatus)/count(c.clientid))fromclientgroupcg,clienthistorych,clientc

wherec.clientid=ch.clientid

andc.groupid=cg.groupid

groupbycg.groupid,cg.groupname

『叄』 SQL 數據統計問題

declare @ct datetime
set @ct=getdate()
if exists(select 1 from HJ_MINUTER_1_BASE_ONE
where CONVERT(varchar(8),Dtime,112) = CONVERT(varchar(8),@ct,112)
and DATEPART(HH,Dtime) = DATEPART(HH,@ct))
--where之後的條件可以合並為:CONVERT(varchar(13),@ct,120) = CONVERT(varchar(13),Dtime,120)
begin
select '此位置寫內容!'
end

還有說一句,多的不是括弧,而是end前面沒有begin,然後begin和end之間需要有語句,才會不報錯

『肆』 怎樣修復已經損壞的SQL資料庫

1.停止SQL Server的服務,備份SQL Server安裝目錄下的\data子目錄
下故障資料庫的兩個文件,一個數據文件hbposv6_branch_data.mdf,
一個hbposv6_branch_log.ldf(也有可能非此命名),同時查看磁碟
空間是否有足夠的空間;

2.啟動SQL Server服務(如已停止),創建一個新的資料庫,命名為
原來資料庫的名字。
3.停止SQL Server
4.把老資料庫的MDF文件(hbposv6_branch_data.mdf)替換
新資料庫的相應的MDF文件,
並把LDF文件(hbposv6_branch_log.ldg)刪除。
5.重新啟動SQL Server服務,然後運行如下命令:

Use Master
go

sp_configure 'allow updates', 1
reconfigure with override
go

begin tran
update sysdatabases set status = 32768 where name = 'hbposv6_branch'
--Verify one row is updated before committing
commit tran
go

6.停止SQL然後重新啟動SQL Server服務,然後運行如下命令
(更換日誌文件路徑地址):

use master
go
DBCC TRACEON(3604)
DBCC REBUILD_LOG
('hbposv6_branch',
'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf')
--在這里,請輸入你的資料庫的路徑
go

7.停止SQL然後重新啟動SQL Server服務,然後運行:

use master
go
update sysdatabases set status = 8 where name = 'hbposv6_branch'
go

sp_configure 'allow updates', 0
reconfigure with override
go

8.運行dbcc checkdb(db_name) 檢查資料庫的完整性

9.修復數庫
--請在查詢分析器中執行下列語句.執行前斷開其它
所有資料庫連接,最好是斷開網線
--如果不是該資料庫名,請將資料庫
--hbposv6_branch
--改為要修復的資料庫

USE master
Go
--單用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
go
--資料庫檢查
DBCC CHECKDB ('hbposv6_branch')
Go
--如果返回結果出現了紅色的提示文字,說明資料庫中存在錯誤,需要修復
--資料庫修復
DBCC CHECKDB ('hbposv6_branch','repair_rebuild')
Go
--再次資料庫檢查,如果返回結果中沒有了紅色的提示文字,
說明修復成功;
DBCC CHECKDB ('hbposv6_branch')
Go
--否則意味著還需要更高級別的修復;嘗試將上面修復語句的
'repair_rebuild'換為'repair_allow_data_loss'再試,
之後再次檢查資料庫。
--如果還有錯誤未修復,請把這些信息以文字的方式發給我們

--退出前請一定要執行以下語句返回到多用戶模式
EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'
go

註:都要把 dbname 替換成真實的資料庫名字。

『伍』 SQL語句的問題資料庫查詢統計的問題

select name,count(name)as '人數' from table group by name

只要根據 name 來分組 基本就OK了

count(name) table 表中任何一個欄位也可以 *,1

『陸』 Service Unavailable

1.流量太大
比如您的主機的額定流量是15G/月。如果您的網站每月流量在15G,每天流量在0.5G以下,則應該能正常訪問。如果連續幾天的訪問量上升,流量超過0.5G/天,則該主機屬於超負荷運行。超負荷運行情況下,則會出現有時能正常訪問,有時被系統自動停止(ServiceUnavailable)的情況。解決辦法是:首先登錄虛擬主機管理中心查看最近的訪問統計和流量統計,看看流量有沒有異常增加的情況,有時站內的個別RAR或者mp3文件被其他網站盜鏈,則會出現流量上升幾十倍的情況。通過我們提供的日誌下載功能和訪問統計中的"文件類別"功能進行分析,可以得出是否有盜鏈或者被大量下載。如果是流量自然增長,購買的型號不能滿足要求,則需要對虛擬主機型號進行升級,以獲得更多的流量配額。
2.程序佔用資源過多
比如同樣是100人在線的論壇,雷傲論壇所佔的資源就是動網論壇所佔資源的10倍以上;另外,一些死循環程序,或者不優化的程序(比如1.0版的阿江統計在資料庫太大的情況下)都會佔用太多的系統資源,而系統資源明顯是有限的。由於我們的新虛擬主機是採用WINDOWS2003的操作系統,各網站之間是以獨立進程運行的,不會相互影響。

如果一個網站的程序占資源太多或者發生太多的錯誤,系統日誌就會提示:「應用程序池'west263pool11'被自動禁用,原因是為此應用程序池提供服務的進程中出現一系列錯誤,或者提示:應用程序池'hui999'超過了其作業限制設置。有關更多信息,請參閱在http://go.microsoft.com/fwlink/events.asp的幫助和支持中心。
這時,訪問這個網站就會提示:ServiceUnavailable。一般系統會在30秒左右恢復正常,多刷新幾次就能正常訪問了。
如果經常出現類似的錯誤,請及時優化網站程序,或者升級你的虛擬主機至更高的款型,以獲得更多的系統資源。

程序佔用資源太多的原因如下:
1.有一個或多個ACCESS資料庫在多次讀寫過程中損壞,微軟的MDAC系統在寫入這個損壞的ACCESS文件時,ASP線程處於BLOCK狀態,結果其他線程只能等待,IIS被死鎖了,全部的CPU時間都消耗在DLLHOST(ASP進程)中。
參考解決辦法:
壓縮和修復我的資料庫
下載資料庫文件--[如果是.asp的擴展名,請改為.mdb的擴展名]--用ACCESS打開--選擇工具--資料庫實用工具--壓縮和修復資料庫--[改回.asp的擴展名]--上傳覆蓋原來資料庫文件

2.注冊了不良的Com組件,特別是用VB開發的ACTIVEX控制項,可能導致佔用內存使用量不斷增長
參考解決辦法:盡量減少或避免非官方或是客戶要求的不必要的組件
3.多媒體等文件下載佔用伺服器帶寬
參考解決辦法:停止下載
4.程序問題
需要及時的關閉不再使用的資料庫,以避免一直佔用伺服器資源在conn.asp連接資料庫字元串語句中加入如下subendConnection()conn.closesetconn=nothingendsub
其它程序問題:把IE選項里顯示友好HTTP錯誤信息的勾取消掉,再訪問網站看出現什麼錯誤信息,然後再調試
5.上傳重要的資料庫等文件更新,由於正處於受訪問狀態,可能導致瞬間佔用率上升
一般此情況較少,若有出現此情況時,可能有必要先暫停站點,再作更新
6.ACCESS論壇(如動網)大了以後就很容易出現資料庫方面的問題,當你的論壇資料庫在30M以上,帖子5萬左右,可能就會出現資料庫吃不消的情況

7.建議取消程序中使用的onerrorresumenext這個容錯語句,對錯誤進行調試。臨時解決辦法:定期刪除多餘的數據、壓縮資料庫,限制論壇灌水,甚至限制論壇注冊。如果是動網論壇,可以使用論壇自帶的分表儲存功能,會有較好的效果
比較長遠辦法:更換論壇和資料庫,一般都採用動網sql商業版本+MSSQL的方案來解決

『柒』 SQL SERVER 2005 關於統計問題,急啊

SELECT MovieID, sum(PVCount) FROM dbo.Tab_2
WHERE Date BETWEEN DATEADD( d, -7 ,GETDATE()) AND GETDATE()
GROUP BY MovieID
這樣就可以得出一周內各視頻的查看次數,之後再根據這個結果集更新Tab_1就可以了。

完整的如下:
UPDATE a
SET a.PVCountWeekly = b.WeeklyCount
from Tab_1 a
INNER JOIN
(
SELECT MovieID, sum(PVCount) as WeeklyCount FROM dbo.Tab_2
WHERE Date BETWEEN DATEADD( d, -7 ,GETDATE()) AND GETDATE()
GROUP BY MovieID
) b
ON a.MovieID = b.MovieID

『捌』 為什麼我用SQL的SELECT 統計記錄總數老出錯

有聚集函數時,SQL不能這樣寫,你可以這樣寫
sql="select id,sex,name,(select count(*) from table) as sum from table"
rs.open sql,conn,1,1

『玖』 SQL多表數據統計查詢遇到的問題~~

select c.小組名,d.積分,d.積分/c.count
from
(select 小組名,count(成員編號) as count from a group by 小組名) c,
(select a.小組名,sum(iif(isnull(b.積分),0,b.積分)) as 積分 from a left join b
on a.成員編號=b.成員編號 group by a.小組名) d
where
c.小組名=d.小組名

原來這么麻煩:(

『拾』 Service Unavailable這個怎麼解決!

原因:由於網站超過了iis限製造成的。解決方法:

1.在Windows上,打開開始菜單,搜索iis,然後打開它。