SQL中清除緩存的方法以及JOIN和WHERE的先後關係
這個很有用,特別是在查看執行計畫的時候,應該先清除緩存。否則有可能你看到的計畫或查詢時間不一定是真實的,因為SQL會利用緩存區的資料。
DBCC FREEPROCCACHE
從程序快取區中移除所有元素。
語法
DBCC FREEPROCCACHE
備註
使用 DBCC FREEPROCCACHE 可以清除程序快取區。釋放程序快取區可能會造成某個臨時性的 SQL 陳述式被重新編譯,而不是從快取區再利用。
結果集
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
權限
DBCC FREEPROCACHE 權限僅預設為 sysadmin 和 serveradmin 伺服器固定角色的成員,且不可轉讓。
checkpoint
dbcc freeproccache
dbcc dropcleanbuffers
select a.*,b.* from a inner join b on a.id=b.aid WHERE a.workdate='20060201'
执行计划会先进行各个表的filter当然对a表是用a.workdate='20060201'这个条件进行了!
接着两个表会有关联操作逻辑运算是关联,但是物理运算会根据你的b表中记录数和a表通过a.workdate='20060201'过滤完的记录数的比例不同而不同!如果两个记录集数量相差较大,通常会使用nestloop。如果记录数相差不大,并且非常多,会使用hash join等物理连接操作!
你能做的是为a.workdate建立非聚集索引,两个表id最好是聚集索引。因为你的select谓词中都是*能不能指明具体的字段?越少越好!
Transact-SQL 新增與加強的功能
Microsoft® SQL Server™ 2000 中的 Transact-SQL,提供了新增與加強的陳述式 (Statement)、預存程序 (Stored Procedure)、函數 (Function)、資料型別 (Data Type)、DBCC 陳述式和資訊結構描述檢視表 (Information Schema View)。
資料型別
新增的資料型別
資料庫主控台命令 (DBCC)
新增的命令
DBCC CHECKCONSTRAINTS DBCC DROPCLEANBUFFERS
DBCC CLEANTABLE DBCC FREEPROCCACHE
DBCC CONCURRENCYVIOLATION DBCC INDEXDEFRAG
加強的命令
DBCC CHECKALLOC DBCC CHECKFILEGROUP
DBCC CHECKDB DBCC SHOWCONTIG
DBCC CHECKTABLE
函數
新增的函數
BINARY_CHECKSUM fn_virtualfilestats
CHECKSUM GETUTCDATE
CHECKSUM_AGG HAS_DBACCESS
COLLATIONPROPERTY IDENT_CURRENT
COUNT_BIG INDEXKEY_PROPERTY
DATABASEPROPERTYEX OBJECTPROPERTY
fn_helpcollations OPENDATASOURCE
fn_listextendedproperty OPENXML
fn_servershareddrives ROWCOUNT_BIG
fn_trace_geteventinfo SCOPE_IDENTITY
fn_trace_getfilterinfo SERVERPROPERTY
fn_trace_getinfo SESSIONPROPERTY
fn_trace_gettable SQL_VARIANT_PROPERTY
資訊結構描述檢視表
新增的資訊結構描述檢視表
PARAMETERS ROUTINE_COLUMNS
ROUTINES
複寫預存程序
新增的複寫預存程序
sp_addmergealternatepublisher sp_getqueuedrows
sp_addscriptexec sp_getsubscriptiondtspackagename
sp_adjustpublisheridentityrange sp_helparticledts
sp_attachsubscription sp_helpmergealternatepublisher
sp_browsesnapshotfolder sp_helpreplicationoption
sp_browsemergesnapshotfolder sp_ivindexhasnullcols
sp_changesubscriptiondtsinfo sp_marksubscriptionvalidation
sp_copysnapshot sp_mergearticlecolumn
sp_disableagentoffload sp_repladdcolumn
sp_dropanonymouseagent sp_repldropcolumn
sp_dropmergealternatepublisher sp_restoredbreplication
sp_enableagentoffload sp_resyncmergesubscription
sp_getagentoffloadinfo sp_vupgrade_replication
保留關鍵字
COLLATE、FUNCTION 和 OPENXML 是 SQL Server 2000 的保留關鍵字。
下列字彙是保留關鍵字。
AVG COMMITTED
CONFIRM CONTROLROW
COUNT ERROREXIT
FLOPPY ISOLATION
LEVEL MAX
MIN MIRROREXIT
ONCE ONLY
PERM PERMANENT
PIPE PREPARE
PRIVILEGES REPEATABLE
SERIALIZABLE SUM
TAPE TEMP
TEMPORARY UNCOMMITTED
WORK
陳述式
新增的陳述式
ALTER FUNCTION DROP FUNCTION
CREATE FUNCTION
加強的陳述式
ALTER DATABASE CREATE TABLE
ALTER TABLE CREATE TRIGGER
BACKUP INDEXPROPERTY
COLUMNPROPERTY OBJECTPROPERTY
CREATE INDEX RESTORE
CREATE STATISTICS
系統預存程序
新增的系統預存程序
sp_addextendedproperty sp_delete_maintenance_plan_job
sp_add_log_shipping_database sp_dropextendedproperty
sp_add_log_shipping_plan sp_get_log_shipping_monitor_info
sp_add_log_shipping_plan_database sp_helpconstraint
sp_add_log_shipping_primary sp_helpindex
sp_add_log_shipping_secondary sp_help_maintenance_plan
sp_add_maintenance_plan sp_invalidate_textptr
sp_add_maintenance_plan_db sp_remove_log_shipping_monitor
sp_add_maintenance_plan_job sp_resolve_logins
sp_can_tlog_be_applied sp_settriggerorder
sp_change_monitor_role sp_trace_create
sp_change_primary_role sp_trace_generateevent
sp_change_secondary_role sp_trace_setevent
sp_create_log_shipping_monitor_account sp_trace_setfilter
sp_define_log_shipping_monitor sp_trace_setstatus
sp_delete_log_shipping_database sp_updateextendedproperty
sp_delete_log_shipping_plan sp_update_log_shipping_monitor_info
sp_delete_log_shipping_plan_database sp_update_log_shipping_plan
sp_delete_log_shipping_primary sp_update_log_shipping_plan_database
sp_delete_log_shipping_secondary sp_xml_preparedocument
sp_delete_maintenance_plan sp_xml_removedocument
sp_delete_maintenance_plan_db
加強的系統預存程序
sp_helptrigger sp_serveroption
sp_tableoption sp_who
系統資料表
新增的系統資料表
logmarkhistory MSsync_states
log_shipping_databases sysdbmaintplan_databases
log_shipping_monitor sysdbmaintplan_history
log_shipping_plan_databases sysdbmaintplan_jobs
log_shipping_plan_history sysdbmaintplans
log_shipping_plans sysmergeschemaarticles
log_shipping_secondaries sysopentapes
Mssub_identity_range