SQLSERVER数据库开发的二十一条军规
SQL SERVER数据库开发的二十一条军规
如果你正在负责一基于SQL SERVER 的项目,或者刚刚接触SQL SERVER,你可能将面临一些数据库性能的问题。这篇文章会提供一些有用的经验-----关于如何形成好的设计。
一、了解你用的工具
不要轻视这一点,这是本文最关键的一条。也许你也看到有很多的SQL SERVER程序员没有掌握全部的T-SQL命令和SQL SERVER提供的各种工具。你也许不愿花一个月时间专门学习那些你永远也用不到的命令,但你至少应该用一个周末浏览所有的T-SQL命令,以便对它门有所了解。将来,当你设计一个查询时,你会记起:“对了,有一个命令可以完全实现我需要的功能。”,于是,到MSDN查看这个命令的确切用法。
二、不要使用游标
除非你已黔驴技穷,否则请不要使用游标。大多数初学者都习惯使用游标,因为这是他们感觉比较熟悉和舒适的编程方式,但不幸的是这会导致糟糕的性能。显然,SQL的总体目标是你要实现什么,而不是怎样实现,对于循环,T-SQL无能为力。
三、规范化你的数据表
为什么不规范化你的数据库?大概有两个借口:出于性能的考虑和纯粹因为懒惰。至于第二点,你迟早得为此付出代价。而关于性能的问题,你不需要优化根本就不慢的东西。我经常看到一些程序员”反规范化”数据库,他们的理由是“原来的设计太慢了”,可结果却常常是他们让系统更慢了。DBMS被设计用来处理规范数据库的,因此,记住:按规范化的要求设计数据库。
四、不要使用SELECT *
这点不太容易做到,我自己也常这样干。可是如果在SELECT中指定你所需要的列,将会带来如下好处:
1、 减少内存消耗和网络带宽。
2、 你可以得到更安全的设计。
3、 给查询优化器机会从索引读取所有需要的列。
五、了解你将要对数据表进行的操作
为你的数据库创建一个健壮的索引,那可是功德一件。可要做到这一点简直就是一门艺术。每当你为一个表添加一个索引,SELECT会更快了,可INSERT和DELETE却大大的变慢了,因为维护索引需要许多额外的工作。显然,这里问题的关键是:你要对这张表进行什么样的操作。这个问题不太好把握,特别是涉及DELETE和UPDATE时,因为这些语句通常在WHERE部分包含SELECT命令。
六、不要给“性别“列创建索引
首先,我们必须了解索引是如何加速对表的访问的。你可以将索
相关文档:
>>mysql:
1、查看所有表名:
show tables [from db_name];
2、查看字段信息
SHOW FULL COLUMNS from db_name.table_name
获取以下信息
Field :字段名
Type:字段类型
Collation:字符集 (mysql 5.0以上有)
Null :是否可以为NULL
Key:索引(PRI,unique,index)
Default:缺省值
Extra:额外(是否 aut ......
例如创建一个表
create table stz
(
&n ......
ADO中sqlserver存储过程使用 收藏
从ADO中得到多个记录集以及怎么样在ADO中使用sql server 的存储过程
DataType Value Length Data Length
BIGINT 996857543543543 15 8
INT 543543 6 4
SMALLINT 32765 5 2
TINYINT 254 3 1
BIT True 1 1
DECIMAL 765.5432321 11 9
NUMERIC 432.6544 8 5
MONEY 543.1234 ......
我们总是把SQL Server 这个单词挂在嘴边,也许很少有人思考过 SQL Server 到底是什么东西。这个问题很难用几句话讲清楚。我们之所以要用连载的方式讨论 SQL Server,就是要从不同的角度阐述这个问题。
一、服务器组件
SQL Server 2000由两个部分组成:服务器组件和客户端工具。
1.内容
SQL Server的服 ......
上一篇分页文章,是用于mysql,稍微修改下,用于Sqlserver2005/2008,没有异常处理。没有考虑性能等。
现将代码贴出,以供初学者参考:
注:邀月使用环境Eclipse 3.4.2+Tomcat 6.18+Sqlserver2005 sp3调试成功。
页面pagelistDemo.jsp内容:
Code
<%@ page language="java" contentType="text/html; ......