多个网站共用一个mssql数据库

多个网站共用一个mssql数据库,第1张

我最近也在研究数据的复制和发布,你可以在sql的查询管理器的帮助里搜索发布功能。

第一种办法:可以写一个程序定时去检测网站的数据更新ID如果有一个有变化就自动给其它数据库发更新请求更新数据,可以用触发器来做,也可以自己写程序实现。

第二种办法:数据库建立发布功能,然后数据实时同步。

第三种办法:你的数据怎么更新呢,你可以POST数据到四个页面保证四个数据库都有数据。

第四中办法:建立第5个数据库所有数据都发布到这里,然后定时同步数据到另外四个数据库,同步数据可以采用window自带任务管理期,自己写vbs脚本就可以实现,缺点就是数据同步时间差异,有自己设置的同步时间决定。

1SQLServer2000常用的数据导入导出方法1

1通过DTS的设计器进行导入或导出DTS的设计器功能强大,支持多任务,也是可视化界面,易于 *** 作,但熟悉的人一般不多,如果只是进行SQLServer数据库中部分表的移动,用这种方法最好,当然,也可以进行全部表的移动

在SQLServerEnterpriseManager中,展开服务器左边的+,选择数据库,右击,选择Alltasks/ImportData

(或Alltasks/ExportData

),进入向导模式,然后按照提示一步一步进行就可以了,里面分得非常详细,可以灵活的在不同数据源之间复制数据,非常的方便,而且还可以另存成DTS包,如果以后还有相同的复制任务,直接运行DTS包就行,省时省力

也可以直接打开DTS设计器,方法是展开服务器名称下面的DataServices,选LocalPackages,在右边的窗口中右击,选NewPackage,就打开了DTS设计器

值得注意的是:如果源数据库要拷贝的表有外键,注意移动的顺序,有时要分批移动,否则外键主键,索引可能丢失,移动的时候选项旁边的提示说的很明白,或者一次性的复制到目标数据库中,再重新建立外键,主键,索引

其实在建立数据库时,建立外键,主键,索引的文件应该和建表文件分开,而且用的数据文件也分开,并分别放在不同的驱动器上,有利于数据库的优化

1

2利用Bcp工具这种工具虽然在SQLServer2000的版本中不推荐使用,但许多数据库管理员仍很喜欢用它,尤其是用过SQLServer早期版本的人

不过Bcp确实有其局限性,首先它的界面不是图形化的;其次它只是在SQLServer的表(视图)与文本文件之间进行复制

但是另一方面,它也有其优点:性能好,开销小,占用内存少,速度快

1

3利用备份和恢复先对源数据库进行完全备份,备份到一个设备(device)上,然后把备份文件复制到目的服务器上(恢复的速度快),进行数据库的恢复 *** 作,在恢复的数据库名中填上源数据库的名字(名字必须相同),选择强制型恢复(可以覆盖以前数据库的选项),在选择从设备中进行恢复,浏览时选中备份的文件就行了

这种方法可以完全恢复数据库,包括外键,主键,索引

1

4直接拷贝数据文件把数据库的数据文件(

mdf)和日志文件(

ldf)都拷贝到目的服务器,在SQLServerQueryAnalyzer中用语句进行恢复:EXECsp_attach_db@dbname=’test’,@filename1=’d:mssql7data est_data

mdf’,@filename2=’d:mssql7data est_log

ldf’这样就把test数据库附加到SQLServer中,可以照常使用,如果不想用原来的日志文件,可以用如下的命令:EXECsp_detach_db@dbname=’test’EXECsp_attach_single_file_db@dbname=’test’,@physname=’d:mssql7data est_data

mdf’这个语句的作用是仅仅加载数据文件,日志文件可以由SQLServer数据库自动添加,但是原来的日志文件中记录的数据就丢失了

1

5在应用程序中定制可以在应用程序(PB、VB)中执行自己编写的程序,也可以在QueryAnalyzer中执行,这种方法比较灵活,其实是利用一个平台连接到数据库,在平台中用的主要是SQL语句,这种方法对数据库的影响小,但是如果用到远程链接服务器,要求网络之间的传输性能好,一般有两种语句:1

5

1select

intonew_tablenamewhere

1

5

2insert(into)old_tablenameselect

from

where

这两种方式的区别是前者把数据插入一个新表(先建立表,再插入数据),而后者是把数据插入已经存在的一个表中,一般来说,第二条语句强于前者

1

6SQLServer的复制功能SQLServer提供了强大的数据复制功能,也是最不易掌握的,具体应用请参考相关资料,值得注意的是要想成功进行数据的复制工作,有些条件是必不可少的:1

6

1SQLServerAgent必须启动,MSDTC必须启动

1

6

2所有要复制的表必须有主键

1

6

3如果表中有text或image数据类型,必须使用withlog选项,不能使用withno_log选项

另外maxtextreplsize选项控制可以复制的文本和图像数据的最大规模,超过这个限制的 *** 作将失败

1

6

4在要进行复制的计算机上,应该至少是隐含共享,即共享名是C$或D$

1

6

5为SQLServer代理使用的WindowsNT账号不能是一个本地的系统账号,因为本地的系统账号不允许网络存取

1

6

6如果参与复制的服务器在另外的计算机域中,必须在这些域之间建立信任关系

2实现基于网页的数据库数据导入那么,如何实现基于网页的数据库数据导入呢,下面利用一个比较简单的网络介绍一下

假设某局域网的网络拓扑结构如下所示:其中服务器A和工作站B位于局域网内,工作站C与服务器D位于Internet内,局域网与Internet是物理隔离的,工作站C与工作站D在同一个办公室内,服务器A上的数据库管理系统是Oracle,服务器D上的数据库管理系统是SQLServer2000

由于工作需要,要求把服务器A的有关数据导入到服务器D上

2

1通常的工作流程:2

1

1在工作站B上运行客户端软件,将服务器A上数据导入到本地的dbf文件

2

1

2用移动硬盘把dbf文件从工作站B拷贝到工作站C上

2

1

3在工作站C上,用ftp软件将dbf文件上传到服务器D上

2

1

4在工作站C上,运行远程桌面软件登录到服务器D上

2

1

5在服务器D上,执行DTS,将dbf文件中的数据导入到SQLServer数据库

2

1

6在服务器D上,运行相关存储过程,做数据的后期处理工作

在许多情况下,因为各种不同情况的需要,这个工作流程每天(甚至更短的时间内)就要执行一次,非常繁琐,而且使用手工 *** 作,很容易出错

下面提出一种改进的方案

2

2改进后的工作流程2

2

1在工作站B上运行客户端软件,将服务器A上数据导入到本地的dbf文件

2

2

2用移动硬盘把dbf文件从工作站B拷贝到工作站C上

2

2

3在工作站C上,打开服务器D上的相关网页,利用网页将dbf文件的数据导入到服务器D上的SQLServer数据库中

首先,要在网页里实现上传功能,把dbf文件从工作站C上传到服务D上,这里就不多介绍了

要通过网页把dbf文件导入到SQLServer中,需要借助DTS可编程对象

DTS包含一组可编程COM对象,主要包含:DTS

Package、DTS

Connection、DTS

Step、DTS

、DTS

、DTS

在ASP网页里,通过用VBScript脚本创建调用DTS可编程COM对象,可以完成数据导入任务

SQLServer2000有比较详细的文档资料介绍DTS编程,但没有给一个具体的例子,如果仅参考文档资料,难度比较大,开发时间也会相当长

这里大概的介绍一下开发程序的过程

首先,在SQLSever2000的DTS设计器里,创建DTS包,实现从dbf文件到SQLServer2000的数据导入,把后期处理的存储过程也添加到DTS包里

将这个DTS包另存为VBScript文件

有了这个VBScript文件,开发程序就容易多了,加入所需要的其他代码,就可以在网页里实现数据库的数据导入

参考文献1张莉,等

SQLServer数据库原理及应用教程〔M〕

北京:清华大学出版社,2003

2梁方明

SQLServer2000数据库编程〔M〕

北京:北京希望电子出版社,2002

3LouisDavidson(美)

SQLServer2000数据库设计权威指南〔M〕

中国电力出版社,2002

[

目前的 ASP 版本总共提供了六个内建对象,分别是Request对象、Response对象、Server对象、Session

对象、Application对象及ObjectContext对象,其各自功能简述如下:

Request对象:负责从客户机接收信息;

Response 对象:负责响应用户请求;

Application对象:负责保存所有ASP程序用户的共用信息;

Session对象:负责保存单个用户与应用程序交互的各种信息;

Server对象:负责控制ASP的运行环境。

ObjectContext对象:供ASP程序配合MTS进行分散式的事务处理。

Request对象

Request对象的语法如下:

Request [ 集合 | 属性 | 方法 ](变量)

Request对象的集合包括Form集合、QueryString集合、Cookies集合、ServerVariables集合等,这些都是

Request对象中常用的数据集合,现分述如下:

Form数据集合

Form数据集合是Request对象中最常使用的数据集合。使用Form数据集合可以取得客户端用POST方式传送

的表单上的各对象内容值

语法如下:

表单对象内容=RequestForm(“表单对象名称”)

表单对象内容=RequestForm(“索引值”)

QueryString数据集合

使用QueryString数据集合可以取得客户端用GET方式传送的各参数内容值。客户端常通过在超链接后接“

”的方式传输信息给服务器端,服务器端再用QueryString数据集合接收。语法如下:

参数内容=RequestQueryString(“参数名称”)

参数内容=RequestQueryString(索引值)

Cookies集合

先利用Response对象的Cookies集合将数据写至客户机中,以后再利用Request对象的Cookies集合从客户

机读取相应的Cookies值。其语法如下:

Cookie值= RequestCookies(“Cookie名称”)

ServerVariables集合

Request对象的ServerVariables集合可用来取得一些客户端的信息,如客户机IP地址、名称等,也可取得

服务器端的环境变量,如服务器地址、服务器端口号等等。其语法如下:

返回值=RequestServerVariables(“参数名称”)

2、Response对象

Response对象用于动态响应客户端请求,并将响应信息返回到客户端浏览器中。

Response对象的语法如下:

Response [ 集合 | 属性 | 方法 ]

Response对象的方法包括AppendToLog、BinaryWrite、Clear、End、Flush、Redirect、Write等。

Write方法

Write方法是Response对象最常用的方法,该方法可以向浏览器动态输出信息。

语法如下:

ResponseWrite 任何类型数据

Redirect方法

Redirect方法可以用来将客户端的浏览器重定向到一个新的网页。

语法如下:

ResponseRedirect URL

Flush方法

Flush方法可以立即发送缓冲区中的数据。语法如下:

ResponseFlush

注意,事先应将Response对象的Buffer属性设为True。

End方法

End方法使Web服务器停止处理脚本并返回当前结果,文件中剩余的内容将不被处理。语法如下:

ResponseEnd

<%@language=”VBScript”%>

<%

ResponseWrite “The first line <br>”

ResponseEnd

ResponseWrite “The second line”

%>

Clear方法

Clear方法可以清除缓冲区中的所有HTML输出。

其语法如下:

ResponseClear

Response对象的属性包括Buffer、CacheControl、Charset、ContentType、Expires、ExpiresAbsolute、

IsClientConnected、PICS、Status等

Buffer属性

Buffer属性用于指示是否缓冲页输出。如果是缓冲页输出,则只有等当前页的所有服务器脚本处理完毕或

是调用了Flush或End方法后,才将响应发送给客户端。语法如下:

ResponseBuffer=Ture或False

默认情况下,Buffer属性值为False。当设为True时,即表示缓冲页输出。

ContentType属性

ContentType属性用来指定响应的>

我是来混分的

我的意见是

创建索引, 移除历史数据到备份表中

下面的内容来自别人总结的, 呵呵

1、1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。

2、2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。

3、3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。

4、4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用 *** 作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。

5、5、调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。

6、6、调整 *** 作系统参数,例如:运行在UNIX *** 作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。

实际上,上述数据库优化措施之间是相互联系的。ORACLE数据库性能恶化表现基本上都是用户响应时间比较长,需要用户长时间的等待。但性能恶化的原因却是多种多样的,有时是多个因素共同造成了性能恶化的结果,这就需要数据库管理员有比较全面的计算机知识,能够敏感地察觉到影响数据库性能的主要原因所在。另外,良好的数据库管理工具对于优化数据库性能也是很重要的。

ORACLE数据库性能优化工具

常用的数据库性能优化工具有:

1、1、ORACLE数据库在线数据字典,ORACLE在线数据字典能够反映出ORACLE动态运行情况,对于调整数据库性能是很有帮助的。

2、2、 *** 作系统工具,例如UNIX *** 作系统的vmstat,iostat等命令可以查看到系统系统级内存和硬盘I/O的使用情况,这些工具对于管理员弄清出系统瓶颈出现在什么地方有时候很有用。

3、3、SQL语言跟踪工具(SQL TRACE FACILITY),SQL语言跟踪工具可以记录SQL语句的执行情况,管理员可以使用虚拟表来调整实例,使用SQL语句跟踪文件调整应用程序性能。SQL语言跟踪工具将结果输出成一个 *** 作系统的文件,管理员可以使用TKPROF工具查看这些文件。

4、4、ORACLE Enterprise Manager(OEM),这是一个图形的用户管理界面,用户可以使用它方便地进行数据库管理而不必记住复杂的ORACLE数据库管理的命令。

5、5、EXPLAIN PLAN——SQL语言优化命令,使用这个命令可以帮助程序员写出高效的SQL语言。

ORACLE数据库的系统性能评估

信息系统的类型不同,需要关注的数据库参数也是不同的。数据库管理员需要根据自己的信息系统的类型着重考虑不同的数据库参数。

1、1、在线事务处理信息系统(OLTP),这种类型的信息系统一般需要有大量的Insert、Update *** 作,典型的系统包括民航机票发售系统、银行储蓄系统等。OLTP系统需要保证数据库的并发性、可靠性和最终用户的速度,这类系统使用的ORACLE数据库需要主要考虑下述参数:

l l 数据库回滚段是否足够?

l l 是否需要建立ORACLE数据库索引、聚集、散列?

l l 系统全局区(SGA)大小是否足够?

l l SQL语句是否高效?

2、2、数据仓库系统(Data Warehousing),这种信息系统的主要任务是从ORACLE的海量数据中进行查询,得到数据之间的某些规律。数据库管理员需要为这种类型的ORACLE数据库着重考虑下述参数:

l l 是否采用B-索引或者bitmap索引?

l l 是否采用并行SQL查询以提高查询效率?

l l 是否采用PL/SQL函数编写存储过程?

l l 有必要的话,需要建立并行数据库提高数据库的查询效率

SQL语句的调整原则

SQL语言是一种灵活的语言,相同的功能可以使用不同的语句来实现,但是语句的执行效率是很不相同的。程序员可以使用EXPLAIN PLAN语句来比较各种实现方案,并选出最优的实现方案。总得来讲,程序员写SQL语句需要满足考虑如下规则:

1、1、尽量使用索引。试比较下面两条SQL语句:

语句A:SELECT dname, deptno FROM dept WHERE deptno NOT IN

(SELECT deptno FROM emp);

语句B:SELECT dname, deptno FROM dept WHERE NOT EXISTS

(SELECT deptno FROM emp WHERE deptdeptno = empdeptno);

这两条查询语句实现的结果是相同的,但是执行语句A的时候,ORACLE会对整个emp表进行扫描,没有使用建立在emp表上的deptno索引,执行语句B的时候,由于在子查询中使用了联合查询,ORACLE只是对emp表进行的部分数据扫描,并利用了deptno列的索引,所以语句B的效率要比语句A的效率高一些。

2、2、选择联合查询的联合次序。考虑下面的例子:

SELECT stuff FROM taba a, tabb b, tabc c

WHERE aacol between :alow and :ahigh

AND bbcol between :blow and :bhigh

AND cccol between :clow and :chigh

AND akey1 = bkey1

AMD akey2 = ckey2;

这个SQL例子中,程序员首先需要选择要查询的主表,因为主表要进行整个表数据的扫描,所以主表应该数据量最小,所以例子中表A的acol列的范围应该比表B和表C相应列的范围小。

3、3、在子查询中慎重使用IN或者NOT IN语句,使用where (NOT) exists的效果要好的多。

4、4、慎重使用视图的联合查询,尤其是比较复杂的视图之间的联合查询。一般对视图的查询最好都分解为对数据表的直接查询效果要好一些。

5、5、可以在参数文件中设置SHARED_POOL_RESERVED_SIZE参数,这个参数在SGA共享池中保留一个连续的内存空间,连续的内存空间有益于存放大的SQL程序包。

6、6、ORACLE公司提供的DBMS_SHARED_POOL程序可以帮助程序员将某些经常使用的存储过程“钉”在SQL区中而不被换出内存,程序员对于经常使用并且占用内存很多的存储过程“钉”到内存中有利于提高最终用户的响应时间。

CPU参数的调整

CPU是服务器的一项重要资源,服务器良好的工作状态是在工作高峰时CPU的使用率在90%以上。如果空闲时间CPU使用率就在90%以上,说明服务器缺乏CPU资源,如果工作高峰时CPU使用率仍然很低,说明服务器CPU资源还比较富余。

使用 *** 作相同命令可以看到CPU的使用情况,一般UNIX *** 作系统的服务器,可以使用sar –u命令查看CPU的使用率,NT *** 作系统的服务器,可以使用NT的性能管理器来查看CPU的使用率。

数据库管理员可以通过查看v$sysstat数据字典中“CPU used by this session”统计项得知ORACLE数据库使用的CPU时间,查看“OS User level CPU time”统计项得知 *** 作系统用户态下的CPU时间,查看“OS System call CPU time”统计项得知 *** 作系统系统态下的CPU时间, *** 作系统总的CPU时间就是用户态和系统态时间之和,如果ORACLE数据库使用的CPU时间占 *** 作系统总的CPU时间90%以上,说明服务器CPU基本上被ORACLE数据库使用着,这是合理,反之,说明服务器CPU被其它程序占用过多,ORACLE数据库无法得到更多的CPU时间。

数据库管理员还可以通过查看v$sesstat数据字典来获得当前连接ORACLE数据库各个会话占用的CPU时间,从而得知什么会话耗用服务器CPU比较多。

出现CPU资源不足的情况是很多的:SQL语句的重解析、低效率的SQL语句、锁冲突都会引起CPU资源不足。

1、数据库管理员可以执行下述语句来查看SQL语句的解析情况:

SELECT FROM V$SYSSTAT

WHERE NAME IN

('parse time cpu', 'parse time elapsed', 'parse count (hard)');

这里parse time cpu是系统服务时间,parse time elapsed是响应时间,用户等待时间

waite time = parse time elapsed – parse time cpu

由此可以得到用户SQL语句平均解析等待时间=waite time / parse count。这个平均等待时间应该接近于0,如果平均解析等待时间过长,数据库管理员可以通过下述语句

SELECT SQL_TEXT, PARSE_CALLS, EXECUTIONS FROM V$SQLAREA

ORDER BY PARSE_CALLS;

来发现是什么SQL语句解析效率比较低。程序员可以优化这些语句,或者增加ORACLE参数SESSION_CACHED_CURSORS的值。

2、数据库管理员还可以通过下述语句:

SELECT BUFFER_GETS, EXECUTIONS, SQL_TEXT FROM V$SQLAREA;

查看低效率的SQL语句,优化这些语句也有助于提高CPU的利用率。

3、3、数据库管理员可以通过v$system_event数据字典中的“latch free”统计项查看ORACLE数据库的冲突情况,如果没有冲突的话,latch free查询出来没有结果。如果冲突太大的话,数据库管理员可以降低spin_count参数值,来消除高的CPU使用率。

内存参数的调整

内存参数的调整主要是指ORACLE数据库的系统全局区(SGA)的调整。SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。

1、 1、 共享池由两部分构成:共享SQL区和数据字典缓冲区,共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息。数据库管理员通过执行下述语句:

select (sum(pins - reloads)) / sum(pins) "Lib Cache" from v$librarycache;

来查看共享SQL区的使用率。这个使用率应该在90%以上,否则需要增加共享池的大小。数据库管理员还可以执行下述语句:

select (sum(gets - getmisses - usage - fixed)) / sum(gets) "Row Cache" from v$rowcache;

查看数据字典缓冲区的使用率,这个使用率也应该在90%以上,否则需要增加共享池的大小。

2、 2、 数据缓冲区。数据库管理员可以通过下述语句:

SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets','physical reads');

来查看数据库数据缓冲区的使用情况。查询出来的结果可以计算出来数据缓冲区的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。

这个命中率应该在90%以上,否则需要增加数据缓冲区的大小。

3、 3、 日志缓冲区。数据库管理员可以通过执行下述语句:

select name,value from v$sysstat where name in ('redo entries','redo log space requests');查看日志缓冲区的使用情况。查询出的结果可以计算出日志缓冲区的申请失败率:

申请失败率=requests/entries,申请失败率应该接近于0,否则说明日志缓冲区开设太小,需要增加ORACLE数据库的日志缓冲区。

MS指的是微软Microsoft,SQL是结构化查询语言结合起来就是说:MS SQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。

通俗的总结一下:数据库就是一堆数据在那里,数据库管理系统就是一个软件去管那堆东西。

MSSQL和ACCESS都是Microsoft公司开发的可以用于ASP程序中的网站数据库,不过MSSQL比ACCESS功能强大,大型网站建议采用MSSQL数据库

首先 将数据库附加在你本地的sql里(比如sql2000)其次在你所下载的网站源程序中找到一个叫做webconfig文件 用记事本打开 找到<connectionStrings>节点并进行修改如下: <connectionStrings>

<add name="ConnectionString" connectionString="Data Source=输入您本机数据库的实例名称(如果安装sql2000时为默认安装就输入(local)我的是交互模式登陆为:Data Source=E8E911E2AE034D0\SQL2000);user id=连接本地数据库用户名称(安装数据库2000时默认为sa);pwd= 连接本地数据库密码(安装数据库2000时默认为空);Database=输入您所下载网站数据库并且附加在sql2000上的名称" providerName="SystemDataSqlClient"/>

</connectionStrings>

把网站发布到IIS服务器或者Apache服务器即可。

如果您在webconfig文件中找到的<connectionStrings>节点为空 那么连接数据库的字符串可能在<appSettings>节点,否则连接数据库字符串就很可能在具体的页面代码中啦。

祝你成功!

这个需要分别考虑。SQL2000和2008本来是可以远程登录的,不存在发布问题。而IIS主要用于发布ASP的网站。如果你的网站需要访问SQL数据库,必须在ASP网页里面进行数据库的访问

以上就是关于多个网站共用一个mssql数据库全部的内容,包括:多个网站共用一个mssql数据库、在网页引用数据库的详细方法(如何引用数据库数据)、网站数据库是access,如何查询何时对数据库中的那个表进行了 *** 作就类似是MSSQL里面的数据库日志的功能.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9856634.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存