MSSQL网页设计将数据库表中的数据天生Insert剧本的存...
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQLAB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。存储历程|剧本|数据|数据库CREATEProcedureDBGenData
?@tableName?Varchar(100)?--表名
AS
DECLARE@columnNameVARCHAR(100)??--列名
DECLARE@TypeNameVARCHAR(100)??--数据范例
DECLARE@columnsVARCHAR(3000)???--
DECLARE@columnsAndheadVARCHAR(3000)?--
SET@columnsAndhead=INSERTINTO+@tableName+(
SET@columns=
?--猎取表的一切字段称号
???DECLAREa?CURSORFOR
?SELECTa.ASColumnName,b.ASTypeName
?FROMsyscolumnsaINNERJOINsystypesbONa.xtype=b.xtype
?WHEREa.=(SELECTFROMsysobjectsWHERE=@tableName)
???OPENa
???FETCHNEXTFROMaINTO@columnName,@TypeName
???WHILE@@FETCH_STATUS=0
???BEGIN
??IF@TypeNameIN(bigint,bit,decimal,float,int,money,numeric,real,smallint,smallmoney,tinyint)
??BEGIN
???SET@columns=@columns+ISNULL(CAST(+@columnName+ASVARCHAR),)+,+
??END
??ELSE
??BEGIN
???SET@columns=@columns+?+?ISNULL(CAST(+@columnName+ASVARCHAR),)++,+
??END
??SET@columnsAndhead=@columnsAndhead+@columnName+,?????
???????FETCHNEXTFROMaINTO@columnName,@TypeName
???END
?SELECT@columnsAndhead=left(@columnsAndhead,len(@columnsAndhead)-1)+)VALUES(
?SELECT@columns=left(@columns,len(@columns)-5)
???CLOSEa?
???DEALLOCATEa??
?
?exec(select+@columnsAndhead+++@columns++)asafrom+@tableName)
GO
Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差 但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右) 现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层. 数据库物理框架没有变动undo和redo都放在数据库得transaction中,个人感觉是个败笔。如果说我们在设计数据库的时候考虑分多个数据库,可能能在一定程度上避免I/O效率问题。 不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关 需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。 连做梦都在想页面结构是怎么样的,绝非虚言 再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。 一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)
页:
[1]