Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
可执行任意进制转换,2进制,8进制,32进制,36进制,进制数依赖于所能表示的字典数,如下'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' 36个字母,最大是36进制,下面关键一句是SET @alldigits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',用取字符串位置的方式得到结果。
IF OBJECT_ID('dbo.DecToBase') IS NOT NULLDROP FUNCTION dbo.DecToBase;GO
CREATE FUNCTION dbo.DecToBase(@val  BIGINT,@base  INT)RETURNS VARCHAR(63)ASBEGIN
    DECLARE @r AS VARCHAR(63),@alldigits AS VARCHAR(36)
    SET @alldigits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'    SET @r = ''
    WHILE @val > 0    BEGIN
        SET @r = SUBSTRING(@alldigits,@val%@base+1,1) + @r
        SET @val = @val / @base    END    RETURN @rENDgo


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

SELECT a.salesstaff,a.OrderNo,a.OrderDate,a.Amount,
SUM(amount) OVER (PARTITION BY a.SalesStaff)
FROM bdOrder a(NOLOCK)
WHERE a.OrderDate >=’2011-05-01′


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

SELECT CAST(CAST (100.* 1/CASE(2) WHEN 0 THEN 1 ELSE 2 END AS DECIMAL(5,2)) AS VARCHAR(50)) + ‘%’


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
WITH tmpArray AS  (    SELECT 'A' NAME , '20,233,2544,25567,14' array
    UNION ALL    SELECT 'B','30,-23433,28'    UNION ALL
    SELECT 'C','12,10,8099,12,1200,13,12,14,10,9'    UNION ALL
    SELECT 'D','-4,-6,-45678,-2')
SELECT a.name,SUBSTRING(a.array,n,CHARINDEX(',',a.array+',',n)-n)FROM tmpArray a
JOIN dbo.fn_nums(10000) fn ON FN.n <=LEN(a.array)  AND SUBSTRING(','+a.array,n,1) = ','
ORDER BY a.name注:CHARINDEX() 可以指定开始查询的位置


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

将ParentID结构形式的表转换成以OrganID为形式的表
?现有一地区表mdCity,结构为:
ID? ParentID Name
1??? 0??? 安徽省???????????????????????
2??? 1??? 安庆市???????????????????????
3??? 2??? 大观区???????????????????????
4??? 2??? 扬江区???????????????????????
5??? 2??? 宜秀区???????????????????????
6??? 1??? 蚌埠市?
7??? 0??? 福建省???????????????????????
8??? 7??? 福州市???????????????????????
9??? 8??? 仓山区???????????????????????
10??? 7??? 长乐市???????????????????????
11??? 7??? 福清市???????????????????????
12??? 11??? 鼓楼区??

需转换为:???
ID? OrganID Name
1??? 01??? 安徽省???????????????????????
2??? 0101??? 安庆市???????????????????????
3??? 010101??? 大观区???????????????????????
4??? 010102??? 扬江区???????????????????????
5??? 010103??? 宜秀区???????????????????????
6??? 0102??? 蚌埠市?
7??? 02??? 福建省???????????????????????
8??? 0201??? 福州市???????????????????????
9??? 020101??? 仓山区???????????????????????
10??? 0202??? 长乐市???????????????????????
11??? 0203??? 福清市???????????????????????
12??? 020301??? 鼓楼区??

构造以下Sql语句即可:
WITH wmdCity AS (
??? SELECT a.id,a.ParentID,a.Name, convert(varchar(50),RIGHT(‘0’ + convert(varchar(2),ROW_NUMBER () OVER ( ORDER BY? a.ID)),2)) organid
??? FROM mdCity a(NOLOCK)
??? WHERE a.ParentID = 0
??? UNION ALL
??? SELECT a.id,a.ParentID,a.Name,? convert(varchar(50),mc.organid + RIGHT(‘0’ + convert(varchar(2),ROW_NUMBER () OVER ( ORDER BY a.ID)),2))? organid
??? FROM mdCity a(NOLOCK)
??? JOIN wmdCity mc ON a.ParentID = mc.id
)
SELECT * from wmdcity mc
ORDER BY mc.organid


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

–数据库日志文件增长的很快,每次手工收缩不能及时,用下面的方法建立一job可以定时运行

USE brm_lvjian

–设置数据库恢复模式为简单
ALTER DATABASE BRM_LVJIAN
SET RECOVERY SIMPLE

–收缩日志到1M
DBCC SHRINKFILE (‘BRM_LVJIAN_Log’, 1);

–设置数据库恢复模式为完整
ALTER DATABASE BRM_LVJIAN
SET RECOVERY FULL


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

WITH orderdata AS(
SELECT bo.OrderNo,bo.OrderDate,bo.Amount,
NTILE(10) OVER (ORDER BY bo.Amount) groupid
FROM bdOrder bo
WHERE bo.OrderDate >=’2011-05-24′ AND bo.OrderDate < '2011-05-25' ) --分为10个组,每组上限与下限,及个数 SELECT a.groupid,MIN(amount),MAX(amount),COUNT(1) FROM orderdata a GROUP BY a.groupid 注:当组数无法整除行数时,前面的r个组比其它组多一行。如有11行,分3个组,那么前两个组分别有4个,后一个组有1个。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

查询表空间及行数

SELECT OBJECT_NAME(id) AS TableName ,
rowcnt AS ROWS,
reserved * 8.0 AS Reserved_KB,
dpages * 8.0 AS USED ,
(used – dpages)* 8.0 AS index_size_KB,
( reserved – used ) * 8.0 AS Unused
FROM sysindexes
WHERE indid = 1
–AND OBJECT_NAME(id) = ‘users’
ORDER BY reserved DESC

或者:EXEC sp_spaceused ‘bdorder’


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

 非(P 且 Q)=(非 P)或(非 Q)   非(P 或 Q)=(非 P)且(非 Q)


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

在引用链接服务器时
SELECT * FROM SERVER.brm_lvjian.dbo.frmUser
这种引用将分散到各个存储过程中,若对链接服务器、数据库、表有任何修改,都有逐一修改各分散的地方,维护不方便。
此时,可利用视图做一个封装,那么在以后改变时,只需改变此视图即可。
CREATE VIEW [dbo].[DB201_frmUser]
AS
SELECT * FROM SERVER.brm_lvjian.dbo.frmUser

使用:
SELECT * FROM DB201_frmUser

或者使用同义词
CREATE SYNONYM brm_lvjian_frmUser
FOR SERVER.brm_lvjian.dbo.frmuser

SELECT * FROM brm_lvjian_frmUser

DROP SYNONYM brm_lvjian_frmUser

同义词作用于:表、视图、存储过程、函数、程序集上。


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

在用@sql拼语句时,对于字符串变量,要传大量的引号,因为要用””表示一个引号
如:.
DECLARE @tname VARCHAR(10)
DECLARE @sql1 VARCHAR(MAX),@sql2 VARCHAR(MAX)
SET @tname = ‘皮松谊’
SET @sql1 = ‘select * from frmuser where username = ‘ + ”” + @tname + ””
EXEC ( @sql1 )

其实可用sql server提供的内置函数quotename解决
SET @sql1 = ‘select * from frmuser where username = ‘ + quotename(@tname,””)
EXEC ( @sql1 )

注:QUOTENAME ( ‘character_string’ [ , ‘quote_character’ ] )
‘quote_character’:
用作分隔符的单字符字符串。可以是单引号 (‘)、左方括号或右方括号 ([ ]) 或者英文双引号 (“)。如果未指定 quote_character,则使用方括号。 方括号可用于表名


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

常用的可通过:sqlserver提供的配置工具来完成,或者使用sp_configure

sp_configure [ [ @configname = ] ‘option_name’ [ , [ @configvalue = ] ‘value’ ] ]
当不传值时,返回所有可配置的服务器选项及最小值,最大值,当前配置值
如:EXEC sp_configure ‘show advanced option’, ‘1’;


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
sys.dm_db_index_usage_stats
动态管理视图 sys.dm_db_index_usage_stats 该视图返回不同类型索引操作的计数以及 上次执行每种操作的时间。
只要启动 SQL Server (MSSQLSERVER) 服务,计数器就初始化为空。而且,当分离或关闭数据库时(例如, 由于 AUTO_CLOSE 设置为 ON),便会删除与该数据库关联的所有行。
这个视图最关键的就是最关键的就是这4个字段:
user_seeks 通过用户查询执行的搜索次数,就是利用聚集索引的次数。
user_scans 通过用户查询执行的扫描次数,就是没有利用任何索引的次数,逐行扫描最慢的那种。
user_lookups 通过用户查询执行的查找次数,就是利用非聚集索引的次数。
user_updates 通过用户查询执行的更新次数,就是更新前找到这条数据时利用的索引的次数 。因为更新是先查询到需要更新的数据,然后执行更新命令所以更新的时候这个user_updates字段和 user_seeks、user_lookups、user_scans字段中的一个都会加一。

--查询从未被使用的索引
SELECT t.name,ix.name,ddius.user_seeks,ddius.user_scans,ddius.user_lookups,ddius.user_updates
FROM sys.dm_db_index_usage_stats ddius
JOIN sys.tables t ON ddius.[object_id] = t.[object_id]
JOIN sys.indexes ix ON ix.[object_id] = ddius.[object_id] AND ix.index_id = ddius.index_id
WHERE ddius.database_id = DB_ID('brm_lvjian')
and last_user_seek is null
     and last_user_scan is null
     and last_user_lookup is null
     and last_user_update is not null



索引与页关系
--查询索引使用的页数,每页是8K,页数乘以8,即为空间使用数
SELECT t.name,i.name,sp.in_row_data_page_count,sp.in_row_used_page_count,sp.in_row_reserved_page_count
FROM sys.tables t
JOIN sys.indexes i ON t.[object_id] = i.[object_id]
JOIN sys.dm_db_partition_stats sp ON sp.[object_id] = i.[object_id] AND sp.index_id = i.index_id
ORDER BY t.name,i.name

查询表占用空间,涉及的索引使用空间
SELECT a3.name AS [Schema 名称],
	a2.name AS [表名称],
	a1.rows as 记录条数,
	(a1.reserved + ISNULL(a4.reserved,0))* 8 AS [保留空间(K)],
	a1.data * 8 AS [数据使用空间(k)],
	(CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data 
	THEN (a1.used + ISNULL(a4.used,0)) - a1.data 
	ELSE 0 END) * 8 AS [索引使用空间(k)],
	(CASE WHEN (a1.reserved + ISNULL(a4.reserved,0)) > a1.used 
	THEN (a1.reserved + ISNULL(a4.reserved,0)) - a1.used 
	ELSE 0 END) * 8 AS [未用空间(k)],
	a1.data * 8*1024/(CASE WHEN a1.Rows=0 THEN 1 ELSE a1.Rows END) 平均每条记录长度
	FROM
		(
		SELECT
		ps.object_id,
		SUM (
		CASE
		WHEN (ps.index_id < 2) THEN row_count
		ELSE 0
		END
		) AS [rows],
		SUM (ps.reserved_page_count) AS reserved,
		SUM (
		CASE
		WHEN (ps.index_id < 2) THEN 
		(ps.in_row_data_page_count + ps.lob_used_page_count + ps.row_overflow_used_page_count)
		ELSE (ps.lob_used_page_count + ps.row_overflow_used_page_count)
		END
		) AS data,
		SUM (ps.used_page_count) AS used
		FROM sys.dm_db_partition_stats ps
		GROUP BY ps.object_id) AS a1
		LEFT OUTER JOIN
			(
			SELECT
			it.parent_id,
			SUM(ps.reserved_page_count) AS reserved,
			SUM(ps.used_page_count) AS used
			FROM sys.dm_db_partition_stats ps
			INNER JOIN sys.internal_tables it ON (it.object_id = ps.object_id)
			WHERE it.internal_type IN (202,204)
			GROUP BY it.parent_id
			) AS a4 ON (a4.parent_id = a1.object_id)
	INNER JOIN sys.all_objects a2  ON ( a1.object_id = a2.object_id )
	INNER JOIN sys.schemas a3 ON (a2.schema_id = a3.schema_id)
	WHERE a2.type <> N'S' and a2.type <> N'IT'
	ORDER BY [保留空间(K)] DESC




--打开3604,信息发送到控制台
DBCC TRACEON(3604)

--查看表索引对应的页数明细
DBCC IND ('brm_lvjian_0817', 'frmuser', -1);

--查看页上的数据信息
DBCC PAGE (brm_lvjian_0817, 1, 409259, 3);


注:
DBCC PAGE
(
    ['database name'|database id], -- can be the actual name or id of the database
    file number, -- the file number where the page is found
    page number, -- the page number within the file
    print option = [0|1|2|3] -- display option; each option provides differing levels of information
)

DBCC IND
(
    ['database name'|database id], -- the database to use
    table name, -- the table name to list results
    index id, -- an index_id from sys.indexes; -1 shows all indexes and IAMs, -2 just show IAMs
)

参考:http://www.sqlskills.com/blogs/paul/post/Inside-the-Storage-Engine-Using-DBCC-PAGE-and-DBCC-IND-to-find-out-if-page-splits-ever-roll-back.aspx


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58
 索引碎片:1,当索引包含的页中的逻辑顺序与数据文件中的物理排序不匹配时,就存在碎片,碎片非常多的索引会降低查询的性能,导致应用程序响应缓慢,可通过重新组织索引或重新生成索引来修复索引碎片。

2,当索引页不在逻辑顺序上时就会产生外部碎片。索引创建时,索引键按照逻辑顺 序放在一组索引页上。当新数据插入索引时,新的键可能放在存在的键之间。为 了让新的键按照正确的顺序插入, 可能会创建新的索引页来存储需要移动的那些 存在的键。这些新的索引页通常物理上不会和那些被移动的键原来所在的页相 邻。创建新页的过程会引起索引页偏离逻辑顺序。

 3,在有特定搜索或者返回无序结果集的查询的情况下, 偏离顺序的索引页不会引起 问题。 对于返回有序结果集的查询, 搜索那些无序的索引页需要进行额外的处理。造成性能低下。
即:在初建时索引是有序的,但不断的update,insert,delete操作使得索引页变得局部无序,但要求返回有序的结果集时,不得不浪费额外时间进行排序。而索引维护的过程就是将排序归为有序的过程


 索引状况检查:dm_db_index_physical_stats
 当avg_fragmentation_in_percent碎片率 <5%时,是正常级别
 当avg_fragmentation_in_percent碎片率 >=5% AND <=30%时,是轻度级别,需要重新组织索引
 当avg_fragmentation_in_percent碎片率 >30%时,是严重级别,需要重建索引
 alert index 索引名称 ON 架构名称.表名 reorganize/rebulid partition = 分区号
 sys.objects:存储表、视图、存储过程

查看:
SELECT *
FROM SYS.dm_db_index_physical_stats(DB_ID(), object_id('bmdcustomer'),NULL,NULL,'LIMITED') DDIPS

1,索引状态检查与维护
SELECT s.name schema_name,o.name OBJECT_name,ix.name INDEX_name,DDIPS.avg_fragmentation_in_percent 碎片率,
	CASE WHEN avg_fragmentation_in_percent > 30 THEN '严重碎片级别,索引需要重建'
	     WHEN avg_fragmentation_in_percent >= 5 AND avg_fragmentation_in_percent < 30 THEN '轻度碎片级别,索引需要重新组织' 
		 ELSE '正常状态' END 提示
	FROM SYS.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,'LIMITED') DDIPS
	JOIN SYS.objects o ON DDIPS.[object_id] = O.[object_id] --得到表名
	JOIN SYS.schemas s ON S.[schema_id] = O.[schema_id] --得到表的架构名
	JOIN SYS.indexes IX ON DDIPS.[object_id] = IX.[object_id] AND DDIPS.index_id = IX.index_id --得到索引名称
WHERE ddips.[object_id] = object_id('bdcustomerallocate') AND s.[schema_id] = SCHEMA_ID('dbo')  

/*
* 1,重新组织索引:alter index IX_bdCustomerAllocate ON dbo.bdCustomerAllocate reorganize
* 2,重建索引:alter index PK_bdCustomerAllocate ON dbo.bdCustomerAllocate rebulid
* */

2,索引状态批量维护
/*索引维护:检查数据库中所有索引,修复有问题的索引
* alert index 索引名称 ON 架构名称.表名 reorganize/rebulid partition = 分区号
* sys.partitions:数据库中所有表和索引的每个分区在表中各对应一行
* sys.objects:存储表、视图、存储过程
* 
* */
DECLARE cur_dx CURSOR FOR

WITH PT AS(
SELECT p.[object_id],p.index_id, COUNT(1) partition_count
FROM SYS.partitions p
GROUP BY p.[object_id],p.index_id),

DIX AS(
	SELECT DDIPS.[object_id],DDIPS.index_id,DDIPS.partition_number,DDIPS.avg_fragmentation_in_percent,
	o.name OBJECT_name,s.name schema_name,ix.name INDEX_name,pt.partition_count,
	CASE WHEN avg_fragmentation_in_percent > 30 THEN '严重碎片级别,索引需要重建'
	     WHEN avg_fragmentation_in_percent >= 5 AND avg_fragmentation_in_percent < 30 THEN '轻度碎片级别,索引需要重新组织' END warning
	
	FROM SYS.dm_db_index_physical_stats(DB_ID(),NULL,NULL,NULL,'LIMITED') DDIPS
	JOIN SYS.objects o ON DDIPS.[object_id] = O.[object_id] --得到表名
	JOIN SYS.schemas s ON S.[schema_id] = O.[schema_id] --得到表的架构名
	JOIN SYS.indexes IX ON DDIPS.[object_id] = IX.[object_id] AND DDIPS.index_id = IX.index_id --得到索引名称
	JOIN PT ON DDIPS.[object_id] = PT.object_id AND DDIPS.index_id = pt.index_id --得到分区号
	WHERE ddips.avg_fragmentation_in_percent > 5 AND DDIPS.index_id > 0	
	AND ddips.[object_id]=OBJECT_ID('bdcustomerallocate')
),
DIXSQL AS(
	SELECT ' ALTER INDEX ' + QUOTENAME(INDEX_NAME)
	+ ' ON ' + QUOTENAME(schema_name) + '.' + QUOTENAME(OBJECT_NAME)
	+ CASE WHEN avg_fragmentation_in_percent < 30 THEN ' REORGANIZE '
	  ELSE ' REBUILD ' END 
	+ CASE WHEN partition_count > 1
	THEN ' PARTITION =  ' + CONVERT(NVARCHAR(20),partition_number)
	ELSE '' END  SQL
	FROM DIX
) 
SELECT * FROM DIXSQL

DECLARE @sql NVARCHAR(max)
OPEN cur_dx
FETCH cur_dx INTO @sql
WHILE @@FETCH_STATUS = 0
BEGIN
	EXEC sp_executesql @sql
	RAISERROR('Executed:%s',10,1,@sql) WITH NOWAIT
	FETCH cur_dx INTO @sql	
END 
CLOSE cur_dx
DEALLOCATE cur_dx

--ALTER INDEX [PK_bdCustomerAllocate] ON [dbo].[bdCustomerAllocate]   REBUILD 


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

TSQL一般是对列操作,如聚合等,现要求按行进行聚合,如求出每行中最大的字段
方法:将每行数据转成一列数据集进行操作即可
如:

SELECT f.account,f.username,
( SELECT MAX(c1) FROM ( SELECT f.account c1 UNION ALL SELECT f.UserName )M )cmax
FROM frmuser f


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

rollup:汇总
在GROUP后加WITH ROLLUP来实现总计与小计,它会对每次分组的结果进行ROLLUP操作,产生汇总的结果,显示在行下。
在显示的时候可用GROUPING来判断当天是数据行还是汇总行,GROUPING为1时是汇总行,为0为数据行。
1,当GROUP只有一个字段时,ROLLUP在最后一行会显示总计
2,当GROUP有多个字段时,在上一个字段改变时显示汇总结果
即:ROLLUP会在上个字段改变时显示汇总结果,当GROUP按一个字段分组,因此字段上个字段不存在,故会在最后显示汇总结果。
如:
SELECT
CASE WHEN GROUPING (convert(varchar(10),a.OrderDate,120)) = 0 THEN convert(varchar(10),a.OrderDate,120)
WHEN GROUPING(convert(varchar(10),a.OrderDate,120)) = 1 THEN ‘总计:’ END,
CASE WHEN GROUPING(a.DepartmentID) = 0 THEN convert(varchar(10),a.DepartmentID)
WHEN GROUPING(convert(varchar(10),a.OrderDate,120)) = 0 AND GROUPING(a.DepartmentID) = 1 THEN ‘小计:’ end,
SUM(amount)
FROM bdOrder a(NOLOCK)
WHERE a.OrderDate>=’2011-05-01′
GROUP BY convert(varchar(10),a.OrderDate,120),a.DepartmentID,a.DepartmentID
WITH ROLLUP
区分总计与小计:按日期,部门ID分组,当日期所在行通过GROUPING判断出是汇总行时,则是总计。
当日期所在行为数据行,而部门ID为汇总时,为小计。
3,若不想要小计,只保留总计与其它数据,用HAVING GROUPING(firstColoum) = 1 OR 其它分组列数据IS NOT NULL


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

基础

索引

  • 排序

    • Comparison Sorting 比较式排序
      • Bubble Sort 冒泡排序
      • Selection Sort 选择排序
      • Insertion Sort 插入排序
      • Shell Sort 希尔排序
      • Merge Sort 归并排序
      • Quck Sort 快速排序
    • Bucket Sort 桶排序
    • Counting Sort 计数排序
    • Radix Sort 基数排序

    堆数据结构

    图 算法

    动态编程

    • 计算 Fibonacci 数 ( java 版本演示)

    其它…

    (全文完)


    Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

    gofreeserve.com

      2000 MB的主机空间,20个附加域名,在PHP中的sendmail,自动安装脚本,GZIP压缩,的MX管理,CNAME管理,80 GB的每月带宽,20个二级域名,网站建设者,文件管理器和基本的编辑器,票务支持系统,网络工具,MySQL查询分析器慢,库,20托管域名,。htaccess的,安全模式,视频教程,自定义错误页,99.9%的服务正常运行时间,PHP的MyAdmin,免费域名,GD库,的FTP,24 / 7技术支持,帐户统计,PHP版本 5.2.13

    000webhost ? 1500M支持PHP可绑米免费虚拟主机

      免费提供1500M空间,100G流量,FTP、Web方式上传管理文件,支持PHP5,提供2个MySQL数据库, cPanel管理面板,可一键安装WordPress、phpBB2、Drupal、Joomla等几种热门PHP程序,免费提供1个二级域名,可以绑定自己的域名,速度不错,无广告。

      Zymic ? 6G容量可绑米免费PHP空间

      Zymic免费空间,6G容量,每月50G流量限制,FTP、Web方式上传管理文件,支持PHP5,限制较多,有3个MySQL数据库,提供免费二级域名1个,可绑定无限个自己的域名,无广告。

      SiteMix ? 日本1.5G可绑米免费PHP空间

      SiteMix是一家日本免费空间服务网站, 1.5G存储空间,支持PHP,提供免费二级域名1个或绑定1个你自己的域名(仅支持顶级域名,二级域名不可以,可支持CN域名),FTP、Web方式上传管理文件,提供最新版WordPress免费博客(由于支持FTP、Web方式上传管理文件,你可以自己传插件和风格进行修改设置,非常方便!但原有文件无法修改。)中国国内速度飞快。

      UcoZ ? 支持FTP且可绑米300M

      Ucoz的免费自助建站系统功能非常强大,对中文支持也很好,但生成的网页却是英文,好在支持FTP、Web上传管理文件,你可以自己上传中文网页或其它文件,可以支持外链。UcoZ提供免费二级域名1个,还可以绑定你自己的域名。Ucoz不支持PHP、ASP等程序脚本,但免费提供了论坛、留言板、博客、网络相册、投票系统等常用程序,你可以自己选择安装。

      Six6 ? 6G容量cPanel面板免费PHP空间

      Six6免费空间,6G容量,无限月流量,简体中文版cPanel主机管理面板,支持FTP、Web方式上传管理文件,支持PHP5,不提供MySQL数据库。Six6免费PHP空间提供免费二级域名1个,可绑定1个域名(仅能在申请的时候绑定),无广告。

      FreeWebHostingArea ? 1.5G容量可绑米免费PHP空间

      FreeWebHostingArea免费PHP空间,500M存储空间,单个文件限10M以内,不限上传文件类型,每天5G流量限制,FTP、Web方式上传管理文件,支持PHP5、MySQL5、SSI,可自定义404、403错误,提供免费二级域名1个,或者绑定1个你自己的域名,无广告。一键安装WordPress、PhpBB等程序。FreeWebHostingArea免费空间旗下有多个网站,域名不一样、IP地址不一样,其它都一样,根据你的需要来选择。

      Freehostia ? 250M可绑米免费PHP空间

      Freehostia免费PHP空间,250M容量,每月6G流量限制,CPU使用不超过1.3%,FTP、Web方式上传管理文件,支持PHP、CGI,1个MySQL数据库(10M存储空间),提供免费二级域名,并可最多绑定5个自己的域名建立5个不同的网站,还提供3个支持POP3、IMAP的免费邮箱,Freehostia具有功能强大的简体中文管理面板,速度不错,无广告。

      0fees提供300M国外高速免费php空间申请

      ByetHost 和0fees系出同门的免费空间(000webhost),值得推荐。

      0fees是美国的免费空间,速度不错,提供300M空间,每月10G流量限制,ftp、web方式上传管理文件,支持PHP5,提供3个MySQL数据库,无限个支持POP3的电子邮箱,可以添加6个二级域名,绑定6个域名,可建6个不同网站,VistaPanel管理面板。可一键安装WordPress、phpBB、PHPWind、Xoops、Drupal等30余种最新PHP程序。

      ByetHost ? 250M可绑米国外免费PHP站

      ByetHost提供250M空间,每月6G流量,ftp、web方式上传管理文件,支持PHP5,提供3个MySQL数据库,无限个支持POP3的电子邮箱,可以添加6个二级域名,绑定6个域名,可建6个不同网站,VistaPanel管理面板。可一键安装WordPress、phpBB、PHPWind、Xoops、Drupal等30余种最新PHP程序。

      MegaByet免费1.6G可绑米国外空间

      Megabyet免费PHP空间,cPanel面板,1600M容量,无流量限制,FTP、Web方式上传管理文件,支持PHP、CGI,3个MySQL数据库,2个FTP帐户,提供免费二级域名,并可最多绑定6个自己的域名建立6个不同的网站,还提供支持POP3、IMAP的免费邮箱,速度很好,无广告,推荐使用。

      20x美国5G免费空间

      20x.cc,5 GB空间、200 GB流量、可绑定50个域名、50个免费MySQL数据库、1电子邮件帐户、赠送免费CO.CC二级域名(自己可解析子域名)、可绑定自己的域名、中文Vistapanel控制面板、无强制广告、没有发帖限制、没有宣传限制、永久免费的PHP空间。


    Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

    系统出现数据库无法连接的问题,远程连接不上服务器,进入机房服务器查看,运行良好,只是在右下方不时弹出IP冲突的提示,在客户机上运行arp -a 查看,发现所在IP对应的mac地址不是服务器的mac地址,遂想到有一位同事的IP错误的设置成了服务器IP,客户机都访问同事的电脑去了,出现数据库无法连接的问题,
    解决方法:1,找出冲突IP所在电脑,更改IP,在客户机上运行arp -d删除缓存信息。
    2,在不方便找出冲突IP的情况下,更改服务器的IP地址。

    注:ARP原因:地址解析协议,是一种将IP地址转化成物理地址的协议
    1,局域网同一网段的网络流通不是根据IP地址进行,而是按照MAC地址进行传输,需要将被访问电脑的IP地址转为MAC地址才能通讯,为便于通讯,会有2分钟的缓存机制。
    2,某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。对本地的ARP2缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia??物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。


    Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

    HTTP 错误 400
    400 请求出错
    由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。
    HTTP 错误 401
    401.1 未授权:登录失败
    此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。
    请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。
    401.2 未授权:服务器的配置导致登录失败
    此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。此错误通常由未发送正确的 WWW 验证表头字段所致。
    请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。
    401.3 未授权:由于资源中的 ACL 而未授权
    此错误表明客户所传输的证书没有对服务器中特定资源的访问权限。此资源可能是客户机中的地址行所列出的网页或文件,也可能是处理客户机中的地址行所列出的文件所需服务器上的其他文件。
    请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。
    401.4 未授权:授权服务被筛选程序拒绝
    此错误表明 Web 服务器已经安装了筛选程序,用以验证连接到服务器的用户。此筛选程序拒绝连接到此服务器的真品证书的访问。
    请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。
    401.5 未授权:ISAPI/CGI 应用程序的授权失败
    此错误表明试图使用的 Web服务器中的地址已经安装了 ISAPI 或 CGI程序,在继续之前用以验证用户的证书。此程序拒绝用来连接到服务器的真品证书的访问。
    请记录试图访问的完整地址,并与 Web服务器的管理员联系以确认您是否具有访问所请求资源的权限
    HTTP 错误 403
    403.1 禁止:禁止执行访问
    如果从并不允许执行程序的目录中执行 CGI、ISAPI或其他执行程序就可能引起此错误。
    如果问题依然存在,请与 Web 服务器的管理员联系。
    403.2 禁止:禁止读取访问
    如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的HTML 页时就会导致此错误。
    如果问题依然存在,请与 Web 服务器的管理员联系。
    403.3 禁止:禁止写访问
    如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。
    如果问题依然存在,请与 Web服务器的管理员联系。
    403.4 禁止:需要 SSL
    此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入https:// 以启用 SSL。
    如果问题依然存在,请与 Web服务器的管理员联系。
    403.5 禁止:需要 SSL 128
    此错误消息表明您试图访问的资源受 128位的安全套接字层(SSL)保护。要查看此资源,需要有支持此SSL 层的浏览器。
    请确认浏览器是否支持 128 位 SSL安全性。如果支持,就与 Web服务器的管理员联系,并报告问题。
    403.6 禁止:拒绝 IP 地址
    如果服务器含有不允许访问此站点的 IP地址列表,并且您正使用的 IP地址在此列表中,就会导致此问题。
    如果问题依然存在,请与 Web服务器的管理员联系。
    403.7 禁止:需要用户证书
    当试图访问的资源要求浏览器具有服务器可识别的用户安全套接字层(SSL)证书时就会导致此问题。可用来验证您是否为此资源的合法用户。
    请与 Web服务器的管理员联系以获取有效的用户证书。
    403.8 禁止:禁止站点访问
    如果 Web服务器不为请求提供服务,或您没有连接到此站点的权限时,就会导致此问题。
    请与 Web 服务器的管理员联系。
    403.9 禁止访问:所连接的用户太多
    如果 Web太忙并且由于流量过大而无法处理您的请求时就会导致此问题。请稍后再次连接。
    如果问题依然存在,请与 Web 服务器的管理员联系。
    403.10 禁止访问:配置无效
    此时 Web 服务器的配置存在问题。
    如果问题依然存在,请与 Web服务器的管理员联系。
    403.11 禁止访问:密码已更改
    在身份验证的过程中如果用户输入错误的密码,就会导致此错误。请刷新网页并重试。
    如果问题依然存在,请与 Web服务器的管理员联系。
    403.12 禁止访问:映射程序拒绝访问
    拒绝用户证书试图访问此 Web 站点。
    请与站点管理员联系以建立用户证书权限。如果必要,也可以更改用户证书并重试。
    HTTP 错误 404
    404 找不到
    Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。
    如果问题依然存在,请与服务器的管理员联系。
    HTTP 错误 405
    405 不允许此方法
    对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。
    如果问题依然存在,请与服务器的管理员联系。
    HTTP 错误 406
    406 不可接受
    根据此请求中所发送的“接受”标题,此请求所标识的资源只能生成内容特征为“不可接受”的响应实体。
    如果问题依然存在,请与服务器的管理员联系。
    HTTP 错误 407
    407 需要代理身份验证
    在可为此请求提供服务之前,您必须验证此代理服务器。请登录到代理服务器,然后重试。
    如果问题依然存在,请与 Web 服务器的管理员联系。
    HTTP 错误 412
    412 前提条件失败
    在服务器上测试前提条件时,部分请求标题字段中所给定的前提条件估计为FALSE。客户机将前提条件放置在当前资源 metainformation(标题字段数据)中,以防止所请求的方法被误用到其他资源。
    如果问题依然存在,请与 Web 服务器的管理员联系。
    HTTP 错误 414
    414 Request-URI 太长
    Request-URL太长,服务器拒绝服务此请求。仅在下列条件下才有可能发生此条件:
    客户机错误地将 POST 请求转换为具有较长的查询信息的 GET 请求。
    客户机遇到了重定向问题(例如,指向自身的后缀的重定向前缀)。
    服务器正遭受试图利用某些服务器(将固定长度的缓冲区用于读取或执行 Request-URI)中的安全性漏洞的客户干扰。
    如果问题依然存在,请与 Web 服务器的管理员联系。
    HTTP 错误 500
    500 服务器的内部错误
    Web 服务器不能执行此请求。请稍后重试此请求。
    如果问题依然存在,请与 Web服务器的管理员联系。
    HTTP 错误 501
    501 未实现
    Web 服务器不支持实现此请求所需的功能。请检查URL 中的错误,如果问题依然存在,请与 Web服务器的管理员联系。
    HTTP 错误 502
    502 网关出错
    当用作网关或代理时,服务器将从试图实现此请求时所访问的upstream 服务器中接收无效的响应。
    如果问题依然存在,请与 Web服务器的管理员联系。