如果你要訪問統計
www.51.la
就不錯, 把代碼放到頁面就可以統計, 也有顯示訪問量的代碼可以調用
但是如果你要統計的訪問量還和會員掛鉤的話,你現在提供的信息讓人無法回答;;;;
涉及到 統計代碼 和 會員判斷代碼 以及 調用代碼
⑵ vps配置E5620 2.4 內存512 能承受多少訪問量 資料庫mssql 大約 pv 和ip
512M內存,如果你的網站只有純腳本<50K,則可以承受1000人在線,
如果有圖片,但頁面上的圖片不多也比較小則1000*0.7人在線,
如果有圖片,同時頁面上的圖片較多則1000*(0.3-0.5)人在線,
然後是資料庫
語法寫的好精練,則是上面的值X×(0.5-0.7)人在線,
寫的語法不好,那就不好說了。
日PV,跟你的日訪問人數和網站頁容有關,這個不好估,你只要算好同時在線人數即可。
最後建議,你如果能達到同時在線100人,則你的網站已經會產出效益,而這時建議你需要換好的或更大內存的VPS,提高訪問者的體驗感。
⑶ 如何查看sql server 2000中的某個資料庫有有多少用戶正在訪問
系統表sysprocesses 中有用戶連接記錄。可以根據資料庫名稱,查看連接的用戶。
Selectspid,hostname,loginame,user_name(uid)Asusername
Fromsysprocesses
Wheredbid=db_id('glkf')
⑷ SQL SERVER 2005資料庫 以訪問量最大是多少
理論上無限制 前提你硬體很好 能支持這么多 還有關鍵的因素 你的帶寬有這么多嗎
⑸ sql資料庫和網站訪問量有關的問題
雖然知道你是sql資料庫.但一般指的都是access和mssql較多,mysql也有,那麼:
asp+access(或mssql)類的網站,一般主機都是win2003虛擬主機對不?那麼.一般會限制IIS數量,少數的空間商也會限制流量,iis大致可以說成是"同時在線人數",而"流量"指的就是用戶下載你網站的網頁所產生的數據交換大小.一般iis同時在線人數都是100~400,需要更多可以向空間商詢問.
但一般來說,100個iis如果真被佔用光的話,那麼.用戶數通常是小於100的,打個比方說,如果一個用戶,在瀏覽器裡面打開你網站的兩個頁面,那麼,就佔用你的兩個iis,那樣.如果有人一口氣打開你100個網頁不關閉,那麼,就把你的iis給消耗光了,別的用戶就看不到了.
但是嘞,其實就算是每個用戶只開一個網頁,也不一定人支撐起100個用戶,只要涉及到資料庫,那麼,打開的資料庫也會佔用一定量.
還有一點就是CPU分配,一般都是分配給每個用戶1%~5%的資源,如果網站程序有錯誤,導致空間的資源消耗迅速,那麼,容易引起頻繁的死機,最壞的情況,有可能會被空間商給請出去.
如asp語句中,如果打開資料庫連接池後,沒有及時進行關閉,set conn=nothing,會導致資源消耗迅速.
你說,如果服務供應商沒有限制?是獨立主機嗎?那樣的話,iis就夠你用的了.流量和cpu也不用怕了.但如果你的程序是asp+access的,那樣就有點吃不消拉.因為access承受力不好,因為不是專業的web資料庫的原因,一般中小型網站用ac可以,如果訪問量更大,那就麻煩了.具說超過2G就不能用了,超過20M就會卡...沒試驗過,但也不一定,不常調用資料庫的話,就沒關系.根據你的網站而定,如果是小說站,那就更死人了.我現在就在煩惱著改sql server2000呢...ACCESS 的並發連接數限制為 255 個,就是說.就算你的空間商不限制,255個在線就可以把你的撐破.
Access是種桌面資料庫,只適合數據量少的應用,在處理少量數據和單機訪問的資料庫時是很好的,效率也很高。但是Access本身對於同時訪問客戶端及容量都有一定的缺陷。當您遇到下面的情況之一,您就應該考慮SQL資料庫了:(1) 資料庫大小超過100M;2) 在線人數經常超過100人;(3) 網站經常出現服務失效(英文提示:Service Unavailable);(4) 伺服器經常出現CPU資源被100%佔用。
但如果你的網站是mssql的,那當我上面那段都是廢話...沒說過...
另外,php+mysql的網站,一般都是在linux主機裡面,並不存在所謂的iis,所以都限制流量,就不怕同時在線拉.但是也沒試過...因為我做過的php程序不是很多...
當然.如果你的空間是獨立的主機,程序是asp+mssql,或是asp.net,那麼,就只顧完善整個程序和改進網站吧.
哎...累死了...我回答那麼多.該給我了吧.不懂在提問.
⑹ 如何設置mysql資料庫訪問次數
如何設置mysql資料庫訪問次數
對於查詢佔主要的應用來說,索引顯得尤為重要。很多時候性能問題很簡單的就是因為我們忘了添加索引而造成的,或者說沒有添加更為有效的索引導致。如果不加索引的話,那麼查找任何哪怕只是一條特定的數據都會進行一次全表掃描,如果一張表的數據量很大而符合條件的結果又很少,那麼不加索引會引起致命的性能下降。但是也不是什麼情況都非得建索引不可,比如性別可能就只有兩個值,建索引不僅沒什麼優勢,還會影響到更新速度,這被稱為過度索引。
⑺ 在資料庫訪問量過大時,怎樣提高訪問速度
在ASP中優化資料庫處理
ASP是一個WEB伺服器端的開發環境,它提供了一種簡單易學的腳本(VBScript或Jscript),並帶有許多內置的對象,從而提供了一條簡捷的編程之路。更為重要的是,ASP中提供了ADO對象,讓程序員可以輕松操作各種資料庫,從而可以產生和運行動態的、交互的WEB服務應用程序。目前,國內很多電子商務站點都採用了ASP技術來與資料庫交互,為用戶提供各類服務。
由於電子商務站點的大部分信息都存放在資料庫中,要提高WEB的響應速度,建立高性能的電子商務站點,很大一部分取決於ASP與資料庫之間的處理性能。因此,在ASP編寫時,要注意資料庫處理方法。
1、 使用Connection pool機制
在資料庫處理中,資源花銷最大的是建立資料庫連接,而且用戶還會有一個較長的連接等待時間。若每一個用戶訪問時,都重新建立連接,不僅用戶要長時間等待,而且系統有可能會由於資源消耗過大而停止響應。如果能夠重用以前建立的資料庫連接,而不是每次訪問時都重新建立連接,則可以很好地解決這些問題,從而提高整個系統的性能。在IIS+ASP處理體系中,採用了Connection pool機制來保證這一點。
Connection pool的原理是,IIS+ASP體系中維持了一個連接緩沖池,建立好的資料庫連接在ASP程序中的斷開都是邏輯斷開,而實際的物理連接被存儲在池中並被維護。這樣,當下一個用戶訪問時,直接從連接緩沖池中取得一個資料庫連接,而不需重新連接資料庫,因此,可以大大地提高系統的響應速度。
為了正確使用Connection pool時,必須注意以下幾點:
a). 在MDAC2.0以前的版本中,必須經過資料庫驅動程序的配置才能使用Connection Pool;在以後的版本中(比如MDAC2.1),預設是使用Connection Pool機制。具體配置情況可以參見微軟公司的站點()。
順便提一句,在使用ORACLE資料庫時,最好使用微軟提供的驅動程序。
b). 每次資料庫連接串參數必須相同,否則會被認為是不同的連接而重新去連接資料庫,而不是使用緩沖池中的連接。最好的做法是將連接串存儲在Application變數中,所有的程序在建立連接時使用Application變數的值。
c). 為了更好地使用和維護連接緩沖池,建議在程序中使用以下的方法對資料庫連接進行操作,因為隱式使用資料庫連接時不能利用緩沖池的機制:
¨ 顯示地創建連接對象: Set conn=Server.CreateObject(「Adodb.connection」)
¨ 建立資料庫連接:conn.open Application(「connection_string」),…
¨ 進行資料庫操作:…
¨ 顯式地關閉連接對象:conn.close
2、 利用直接的Ole DB驅動程序
在Asp中,通過ADO可以使用兩種方式連接資料庫,一種是傳統的ODBC方式,一種是Ole DB方式。由於ADO是建立在Ole DB技術上的,為了支持ODBC,必須建立相應的Ole DB 到ODBC的調用轉換(如MS Oledb provider for ODBC)。而使用直接的Ole DB方式(如MS Oledb provider for Sql, Oracle),則不需轉換,從而提高處理速度,同時,還能利用Ole DB的新特性。
3、 在內存中緩存ADO對象或其內容
通常,在ASP程序中,都會涉及到一些存儲在資料庫中的常用信息,如省份列表,商品分類等,這些信息對於每一個訪問用戶都是相同的。若每一個用戶訪問時,都要去資料庫里取出來,然後顯示給用戶,不僅會使資料庫伺服器負載加重,無法快速服務於更重要的事務處理,而且WEB伺服器也必須不停地創建ADO對象,消耗大量資源,導致了當用戶很多時幾乎失去響應。若能把一些常用信息事先存儲在內存中,當用戶訪問時,直接從內存中取出,顯示給用戶,則可以大大減小系統的壓力,提高響應速度。
比如,我們可以把已經取得了數據的RecordSet對象存儲在Application變數中,當用戶訪問時,從Application變數中取得RecordSet對象,而不需再次建立資料庫連接;也可以將RecordSet對象里的數據以其他方式存儲,比如存儲在數組中,然後再將數組存儲在Application變數中,使用時用數組的方式讀取。
需要注意的是,一個對象要存儲在Application變數中,線程模式必須是Both;對於不滿足該條件的對象,必須以其他方式,比如轉換成數組的方式存儲在Application變數中,這也是上面所說的將內容存儲在數組中的原因。
4、 使用數字序列
在Asp程序中,從諸如RecordSet中讀取數據時,為了方便,常使用資料庫列名的方式進行:
Response.write rs(「fieldnameN」)
而很少採用該資料庫列名所在的數字序列來讀取,即:
Response.write rs(N)
其實,為了從RecordSet得到列值,ADO必須將列名轉化為數字序列,因此,若直接使用數字序列,則可以提高讀取速度。若感覺使用數字序列,程序可讀性不直觀,可以採用建立常量的方法,定義:
const FIELDNAME1 1
5、 使用資料庫過程(procere)
在電子商務站點中,尤其是要進行交易的站點,為了完成交易,可能需要多次查詢大量的信息,用於判定是非,然後更新入庫。若在編寫Asp時,直接在一個程序中作多次資料庫操作,不僅IIS要創建很多ADO對象,消耗資源,而且加重了資料庫伺服器的負擔,增大了網路流量。若把多次資料庫操作流程定義為一個資料庫過程,用如下方式調用:
connection.execute 「」
則可以利用資料庫的強大性能,大大減輕Web系統的壓力,而且由於頁面內容與業務分開,管理維護也變得方便。
6、 使用優化過的sql語句
對於電子商務網站,最主要的就是要保證,不論訪問用戶的多少,系統都要有足夠快的響應速度。由於在Asp技術中,ADO對象消耗的資源是非常大的,若一個sql語句要執行很長的一段時間,對整個資源也將一直佔用,使系統沒有足夠的資源服務於其它用戶。因此,盡量使用優化過的sql語句,減少執行時間。比如,不使用在in語句中包含子查詢的語句,充分利用索引。
7、 利用資料庫的特性
ADO是一套通用的對象控制項,本身沒有利用資料庫的任何特性。但若在Asp程序編寫時,有意識地考慮結合資料庫的特性,往往可以有很好的效果。
比如,Oracle資料庫伺服器對於執行過的sql語句,通常都經過了分析優化,並存儲在一個sql內存緩沖區中,當下次同樣的sql語句請求時,直接從內存緩沖區取出執行,不再進行分析優化,從而可以大幅度提高性能。這就要求在Asp程序編寫時,盡量使用相同的Sql語句,或者參數化的Sql語句:
Set cmd=Server.createobject(「adodb.command」)
cmd.CommandText=」select * from proct where proctcode=?」
8、 用時創建,用完釋放
在前面也提到過,ADO對象是非常消耗資源的,因此一定要牢牢記住,只在用到ADO對象時才創建,用完後馬上釋放:
set rs=Server.createobject(「adodb.recordset」)
….
rs.close
set rs=nothing
願您愉快地編程,讓人們享受社會信息化所帶來的好處。
⑻ SQL 語句 怎麼計算 日均訪問量
相同IP算訪問幾次?
方法1:
統計每天的訪問量
select convert(char(10),times,120) DATE,count( IPS) IP_COUNT
from TB group by convert(char(10),times,120)
然後再求日均訪問量:
select avg(IP_COUNT) AVG_COUNT_PER_DAY from(
select convert(char(10),times,120) DATE,count(distinct IPS) IP_COUNT
from TB group by convert(char(10),times,120))
方法二:分別累計IP數與天數相除:
select count( IPS)*1.0/count(distinct convert(char(10),times,120)) from tb
如果下同IP算1次得話,只要在IPS前加distinct即可。
⑼ 怎麼查詢資料庫每天的數據增量和訪問量
1、增量,也就是要看整個庫增加了多少條數據,
(1)Oracle 查 dba_tables視圖,裡面有NUM_ROWS , SUM一下,早一次,晚一次,不過這個只是在大概的數據,不是100%准;
(2)SQL Server 查sys.partitions視圖,裡面有ROWS,比ORACLE准一點。
2、訪問量,這個實現不了,訪問量是沒有數據的,現在都用的連接池,誰知道真正的訪問量。
⑽ 怎樣給訪問量過大的mysql資料庫減壓
以MySQL為例,碎片的存在十分影響性能
MySQL 的碎片是 MySQL 運維過程中比較常見的問題,碎片的存在十分影響資料庫的性能,本文將對 MySQL 碎片進行一次講解。
判斷方法:
MySQL 的碎片是否產生,通過查看
show table status from table_nameG;
這個命令中 Data_free 欄位,如果該欄位不為 0,則產生了數據碎片。
產生的原因:
1. 經常進行 delete 操作
經常進行 delete 操作,產生空白空間,如果進行新的插入操作,MySQL將嘗試利用這些留空的區域,但仍然無法將其徹底佔用,久而久之就產生了碎片;
演示:
創建一張表,往裡面插入數據,進行一個帶有 where 條件或者 limit 的 delete 操作,刪除前後對比一下 Data_free 的變化。
刪除前:
Data_free 不為 0,說明有碎片;
2. update 更新
update 更新可變長度的欄位(例如 varchar 類型),將長的字元串更新成短的。之前存儲的內容長,後來存儲是短的,即使後來插入新數據,那麼有一些空白區域還是沒能有效利用的。
演示:
創建一張表,往裡面插入一條數據,進行一個 update 操作,前後對比一下 Data_free 的變化。
CREATE TABLE `t1` ( `k` varchar(3000) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
更新語句:update t1 set k='aaa';
更新前長度:223 Data_free:0
更新後長度:3 Data_free:204
Data_free 不為 0,說明有碎片;
產生影響:
1. 由於碎片空間是不連續的,導致這些空間不能充分被利用;
2. 由於碎片的存在,導致資料庫的磁碟 I/O 操作變成離散隨機讀寫,加重了磁碟 I/O 的負擔。
清理辦法:
MyISAM:optimize table 表名;(OPTIMIZE 可以整理數據文件,並重排索引)
Innodb:
select count(*) from test.twitter_11;
1. ALTER TABLE tablename ENGINE=InnoDB;(重建表存儲引擎,重新組織數據)
2. 進行一次數據的導入導出
碎片清理的性能對比:
引用我之前一個生產庫的數據,對比一下清理前後的差異。
SQL執行速度:
修改前:1 row in set (7.37 sec)
修改後:1 row in set (1.28 sec)
結論:
通過對比,可以看到碎片清理前後,節省了很多空間,SQL執行效率更快。所以,在日常運維工作中,應對碎片進行定期清理,保證資料庫有穩定的性能。