yanjun
===========================================================
企业介绍
===========================================================

下面是企业介绍:

江门市泰昌电子有限公司成立于1997年,处于美丽著名的中国第一侨乡广东省江门市,是一家专门从事石英晶体谐振器设计制造与销售的高科技企业。

厂区占地面积8366平方米,生产车间面积3114平方米,职工300人,并拥有一批高素质的专业技术人员,生产设备与检测仪器主要从日本、美国引进,年产量超过6000万只。产品品质符合国际IEC和美国ANSI标准, 多年来,我们矢志不渝地贯彻“管理完善,质量可靠,顾客满意”的品质方针,不遗余力地致力于制程新工艺开发、先进技术引进、员工质量意识培养等工作,内部管理和产品品质不断提升,得到多家世界级知名企业认可,企业获得快速发展。

公司专业生产HC—49/U、HC—49U/S、HC—49/T、UM—1、UM—5等系列绿色无铅产品,并已通过SGS RoHs产品环保评估,目前公司产品已广泛应用于通讯、家用电器、无线麦克风、汽车防盗报警系统等产品中,产品已随整机大量出口欧美国家。公司注重生产加工过程的质量控制和严格的产品检测,使产品质量更加优良,深受广大用户的好评

公司1998年通过ISO9001质量体系认证,并严格按照质量标准组织、管理生产,公司本着“管理完善、质量可靠、顾客满意”的质量方针真诚为广大客户提供优质服务,为客户持续提供价格合理、品质优良、性能稳定的产品,公司全体员工真诚欢迎国内外新老朋友前来参观指导。


yanjun0426 发表于:2006.09.09 11:12 ::分类: ( 网站 ) ::阅读:(394次) :: 评论 (0)
===========================================================
自动备份SQL Server数据库中用户创建的Stored Procedures
===========================================================
为了避免意外丢失/损坏辛苦创建的Stored Procedures,或者想恢复到以前版本的Stored Procedures,这样提供了一个有效方法,可以自动将指定数据库中的Stored Procedures进行备份。

1. 在特定的数据库(建议为SQL Servermaster数据库)上创建数据表StoredProceduresBackup,用来保存备份的Stored Procedures

IF OBJECT_ID('StoredProceduresBackup') IS NOT NULL

DROP TABLE StoredProceduresBackup

GO

CREATE TABLE StoredProceduresBackup

(

AutoID INTEGER IDENTITY(1,1) PRIMARY KEY,

InsertDate DATETIME DEFAULT GETDATE(),

DatabaseName VARCHAR(50),

ProcedureName VARCHAR(50),

ProcedureText VARCHAR(4000)

)

GO

2. 创建Stored Procedure名为usp_ProceduresVersion,该Stored Procedure用来将需要备份Stored Procedures的备份到上述创建的数据表中。

其中主要访问sysobjectssyscomments系统表:

(1) sysobjects system table

Contains one row for each object (constraint, default, log, rule, stored procedure, and so on) created within a database. In tempdb only, this table includes a row for each temporary object.

(2) syscomments system table

Contains entries for each view, rule, default, trigger, CHECK constraint, DEFAULT constraint, and stored procedure. The text column contains the original SQL definition statements, which are limited to a maximum size of 4 MB. This table is stored in each database.

(3) source script of stored procedure.

/*

Name: usp_ProceduresVersion

Description: Back up user defined stored-procedures

Author: Rickie

Modification Log: NO

Description Date Changed By

Created procedure 8/27/2004 Rickie

*/

CREATE PROCEDURE usp_ProceduresVersion @DatabaseName NVARCHAR(50)

AS

SET NOCOUNT ON

--This will hold the dynamic string.

DECLARE @strSQL NVARCHAR(4000)

--Set the string

--Only stored procedures

SET @strSQL = 'INSERT INTO master.dbo.StoredProceduresBackup(

DatabaseName,ProcedureName,ProcedureText )

SELECT ''' + @DatabaseName + ''', so.name, sc.text

FROM ' + @DatabaseName + '.dbo.sysobjects so

INNER JOIN ' + @DatabaseName + '.dbo.syscomments sc

ON so.id = sc.id

WHERE so.type = ''p''' + ' and so.status>0

Order By so.id '

--Execute the string

EXEC dbo.sp_executesql @strSQL

GO

3. 创建Job执行上述Stored Procedure

SQL Server上创建Job,并设定运行计划,这样指定数据库的Stored Procedures就可以自动备份到上述数据表中。

具体参考:http://www.officemail.net.cn/article.asp?id=22


yanjun0426 发表于:2006.01.07 09:56 ::分类: ( SQL SERVER 技术 ) ::阅读:(14372次) :: 评论 (0)
===========================================================
如何将SQL Server表驻留内存和检测
===========================================================

SQL Server数据表驻留内存是SQL Server提供的一项功能,在一般小型系统的开发过程中估计很少会涉及到。这里整理了相关文档资料,演示如何把SQL Server中一个表的所有数据都放入内存中,实现内存数据库,提高实时性。

1, DBCC PINTABLE

Marks a table to be pinned, which means Microsoft SQL Server does not flush the pages for the table from memory.

Syntax

DBCC PINTABLE ( database_id , table_id )

To determine the database ID, use the DB_ID function.

To determine the table ID, use the OBJECT_ID function.

注释

DBCC PINTABLE 不会导致将表读入到内存中。当表中的页由普通的 Transact-SQL 语句读入到高速缓存中时,这些页将标记为内存驻留页。当 SQL Server 需要空间以读入新页时,不会清空内存驻留页。SQL Server 仍然记录对页的更新,并且如有必要,将更新的页写回到磁盘。然而,在使用 DBCC UNPINTABLE 语句使该表不驻留之前,SQL Server 在高速缓存中一直保存可用页的复本。

DBCC PINTABLE 最适用于将小的、经常引用的表保存在内存中。将小表的页一次性读入到内存中,将来对其数据的所有引用都不需要从磁盘读入。

注意 DBCC PINTABLE 可以提供性能改进,但是使用时务必小心。如果驻留大表,则该表在开始时会使用一大部分高速缓存,而不为系统中的其它表保留足够的高速缓存。如果所驻留的表比高速缓存大,则该表会填满整个高速缓存。sysadmin 固定服务器角色的某个成员必须关闭而后重新启动 SQL Server,然后使表不驻留。驻留太多的表和驻留比高速缓存大的表会产生同样的问题。

示例:

Declare @db_id int, @tbl_id int

Use DATABASE_NAME

Set @db_id = DB_ID('DATABASE_NAME')

Set @tbl_id = Object_ID('Department')

DBCC pintable (@db_id, @tbl_id)

可将表Department设置为驻留内存。

Declare @db_id int, @tbl_id int

Use DATABASE_NAME

Set @db_id = DB_ID('DATABASE_NAME')

Set @tbl_id = Object_ID('Department')

DBCC UNpintable (@db_id, @tbl_id)

可将表Department取消设置为驻留内存。

可以使用如下的SQL指令来检测执行情况:

Select ObjectProperty(Object_ID('Department'),'TableIsPinned')

如果返回结果为1:则表示该表已经设置为驻留内存;0:则表示没有设置为驻留内存。

2, SP_TableOption

Sets option values for user-defined tables. sp_tableoption may be used to turn on the text in row feature on tables with text, ntext, or image columns.

Syntax

sp_tableoption [ @TableNamePattern = ] 'table'
, [ @OptionName = ] 'option_name'
, [ @OptionValue = ] 'value'

其中,'option_name' 有如下用法:

pintable -- When disabled (the default), it marks the table as no longer RAM-resident. When enabled, marks the table as RAM-resident. (可将指定的表驻留内存)

另外,table lock on bulk load, insert row lock, text in row等等可选值,因不涉及将表驻留内存,具体用法可以查询SQL Server Books Online.

Value有如下用法:

the option_name is enabled (true, on, or 1) or disabled (false, off, or 0)

示例:

EXEC sp_tableoption 'Department','pintable', 'true'

将数据表Department驻留内存

EXEC sp_tableoption 'Department','pintable', 'false'

取消数据表Department驻留内存

可以使用如下的SQL指令来检测执行情况:

Select ObjectProperty(Object_ID('Department'),'TableIsPinned')

如果返回结果为1:则表示该表已经设置为驻留内存;0:则表示没有设置为驻留内存。

3. Conclusions

将数据表设置为驻留内存时,并没有实际将表读入内存中,直到该表从被检索。因此,可以使用如下SQL指令进一步将数据表Department驻留内存:

Select * From Department

另外,可以使用如下SQL指令方便显示/检测数据库Database中所有设置为驻留内存的表:

SELECT * FROM INFORMATION_SCHEMA.Tables

WHERE TABLE_TYPE = 'BASE TABLE'

AND OBJECTPROPERTY(object_id(TABLE_NAME), 'TableIsPinned') > 0

详细参照: http://www.officemail.net.cn/article.asp?id=23


yanjun0426 发表于:2006.01.07 09:49 ::分类: ( SQL SERVER 技术 ) ::阅读:(6113次) :: 评论 (0)
===========================================================
[Oracle]Get Object's DDL use DBMS_METADATA
===========================================================
从Oracle 9i 开始,Oracle通过一个新的包 DBMS_METADATA 提供了和对象创建层交互的API。利用这个包可以轻松的抽取相关对象的DDL。
DESCRIBE dbms_metadata --(output only shows the get_ddl function) 
  
FUNCTION GET_DDL RETURNS CLOB 
  Argument Name                  Type                    In/Out Default? 
  ------------------------------ ----------------------- ------ -------- 
  OBJECT_TYPE                    VARCHAR2                IN 
  NAME                           VARCHAR2                IN 
  SCHEMA                         VARCHAR2                IN     DEFAULT 
  VERSION                        VARCHAR2                IN     DEFAULT 
  MODEL                          VARCHAR2                IN     DEFAULT 
  TRANSFORM                      VARCHAR2                IN     DEFAULT 

如果要抽取一个表的DDL,可以简单的用:
SELECT DBMS_METADATA.get_ddl ('TABLE', 'FOO')
  FROM DUAL;
其中 FOO 是我们要获取DDL的表名字,默认是当前模式下(要注意对象名要用大写)。在SQL*Plus 中可能还要蚩猻erveroutput
SQL> SET serveroutput on long 999999
SQL> /

DBMS_METADATA.GET_DDL('TABLE','FOO')
-----------------------------------------------------------------------


  CREATE TABLE "SCOTT"."FOO"
   (    "DUMMY" VARCHAR2(1)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"
得到的 DDL有的时候似乎太详细了一些--很多Storage / FREELIST之类的语句可能并不是您想要的,可以在当前会话中提交如下语句:
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM( -
	DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
然后看看效果:
SQL> SELECT DBMS_METADATA.get_ddl ('TABLE', 'FOO')
  2    FROM DUAL;

DBMS_METADATA.GET_DDL('TABLE','FOO')
----------------------------------------------------------------------


  CREATE TABLE "SCOTT"."FOO"
   (    "DUMMY" VARCHAR2(1)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "USERS"

SQL>
抽取当前模式下所有表的DDL:
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name)
     FROM USER_ALL_TABLES u
     WHERE u.nested='NO' 
     AND (u.iot_type is null or u.iot_type='IOT');

其他问题

在Oracle 9.2.0.5.0 中,存在一个和DBMS_METADATA的相关的Bug。影响Linux x86平台的数据库软件。错误信息可能类似:

ERROR:
ORA-06502: PL/SQL: numeric or value error
ORA-31605: the following was returned from LpxXSLResetAllVars in routine
kuxslResetParams:
LPX-1: NULL pointer
ORA-22921: length of input buffer is smaller than amount requested
ORA-06512: at "SYS.UTL_XML", line 0
ORA-06512: at "SYS.DBMS_METADATA_INT", line 3320
ORA-06512: at "SYS.DBMS_METADATA_INT", line 4148
ORA-06512: at "SYS.DBMS_METADATA", line 458
ORA-06512: at "SYS.DBMS_METADATA", line 615
ORA-06512: at "SYS.DBMS_METADATA", line 1221
ORA-06512: at line 1

如果遇到类似的错误,可能需要 http://metalink.oracle.com 站点下载编号为2736436的补丁。

参考信息

http://www.officemail.net.cn/article.asp?id=24
Oracle Database Administrator's Guide 10g Release 1 (10.1) Part Number B10739-01 查看全文
yanjun0426 发表于:2004.12.15 13:48 ::分类: ( 初始分类 ) ::阅读:(102900次) :: 评论 (57)
===========================================================
恭喜!您的Blog已经建立。
===========================================================
您已经成功注册ITPUB Blog帐号。请进入http://blog.itpub.net/admin.php管理您的Blog站点。建议先修改Blog的名称并建立文档分类,系统已经默认建立了【初始分类】。如果您的登陆ID包含中文字符,请记录您现在的地址。如果您的登陆ID里未包含任何中文字符,还可以使用“http://blog.itpub.net/您的ID”这种链接形式访问。登陆密码与itpub论坛帐号的密码相同。如有问题请在斑竹区发贴。谢谢。
yanjun0426 发表于:2004.12.15 11:57 ::分类: ( 初始分类 ) ::阅读:(1124次) :: 评论 (0)
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
博客统计...
网站链接...