|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
InnoDB数据表的索引,与InnoDB数据表相比,在InnoDB数据表上,索引对InnoDB数据表的重要性要大得多。在InnoDB数据表上,索引不仅会在搜索数据记录时发挥作用,还是数据行级锁定机制的苊、基础。server|函数createviewv_getdate
as
selectgetdate()[output]
go
---------------------------------------------------------------
createfunctionf_getdate()
returnsdatetime
as
begin
declare@ndatetime
select@n=outputfromv_getdate
return(@n)
end
go
---------------------------------------------------------------
挪用:selectdbo.f_getdate()
======================================================================
-----以下是剖析--------
应为function外部不同意利用
函数能够是断定的或不断定的。假如任什么时候候用一组特定的输出值挪用函数时前往的了局老是不异的,则这些函数为断定的。假如每次挪用函数时即便用的是不异的一组特定输出值,前往的了局老是分歧的,则这些函数为不断定的。
不断定的函数会发生反作用。反作用是变动数据库的某些全局形态,好比更新数据库表或某些内部资本,如文件或收集等(比方,修正文件或发送电子邮件动静)。
不同意在用户界说函数主体中内置不断定函数;这些不断定函数以下:
@@CONNECTIONS@@TOTAL_ERRORS
@@CPU_BUSY@@TOTAL_READ
@@IDLE@@TOTAL_WRITE
@@IO_BUSYGETDATE
@@MAX_CONNECTIONSGETUTCDATE
@@PACK_RECEIVEDNEWID
@@PACK_SENTRAND
@@PACKET_ERRORSTEXTPTR
@@TIMETICKS
只管在用户界说函数主体中不同意有不断定函数,这些用户界说函数在挪用扩大存储历程时仍会发生反作用。
因为扩大存储历程会对数据库发生反作用,因而挪用扩大存储历程的函数是不断定的。当用户界说函数挪用会对数据库发生反作用的扩大存储历程时,不要期望了局集坚持分歧或实行函数。
出于效率方面的考虑,InnoDB数据表的数据行级锁定实际发生在它们的索引上,而不是数据表自身上。显然,数据行级锁定机制只有在有关的数据表有一个合适的索引可供锁定的时候才能发挥效力。 |
|