名站网址导航为大家提供关于数据库教程相关的教程网站知识。
原理:sqlserver 网站数据库压缩与网站数据库日志(ldf)压缩具体相关方法分享
复制具体相关代码 具体相关代码如下:,DUMP TRANSACTION [jc8] WITh NO_LOG BACKUP LOG [jc8] WITh NO_LOG DBCC ShRINKDATABASE([jc8])
第一步:应用程序把查询SQL数据库语句发给 站点服务器端执行。
咱们在数据层执行SQL数据库语句时,应用程序会连接到相应的网站数据库站点服务器,把SQL数据库语句发送给站点服务器处理。
第二步:站点服务器解析请求的SQL数据库语句。
1:SQL计划数据缓存,经经常用的查询分析器的朋友大概都知道这样一个事实,往往一个查询数据库语句在第一次运行的时候需要执行特别长的时间,但是假如如果您马上或者在一定时间内运行同样的数据库语句,会在很短的时间内返回查询结果。
原因:
1):站点服务器在接收到查询请求后,并不会马上去网站数据库查询,而是在网站数据库中的计划数据缓存中找是否有相对应的执行计划,假如如果存在,就直接调用已经编译好的执行计划,节省了执行计划的编译时间。
2):假如如果所查询的行已经存在于数据缓冲存储区中,就不用查询物理网站网站文件了,而是从数据缓存中取数据,这样从内存中取数据就会比从硬盘上读取数据快很多,提高了查询效率.数据缓冲存储区会在后面提到。
2:假如如果在SQL计划数据缓存中没有对应的执行计划,站点服务器首先会对用户请求的SQL数据库语句进行语法效验,假如如果有语法错误,站点服务器会结束查询操作办法,并用返回相应的错误信息给调用它的应用程序。
注意:此时返回的错误信息中,只会包含基本的语法错误信息,例如select 写成selec等,错误信息中假如如果包含一列表中本没有的列,此时站点服务器是不会检查出来的,因为只是语法验证,语义是否正确放在下一步进行。
3:语法符合后,就开始验证它的语义是否正确,例如,表名,列名,存储过程等等网站数据库对象是否真正存在,假如如果发现有不存在的,就会报错给应用程序,同时结束查询。
4:接下来就是获得对象的解析锁,咱们在查询一个表时,首先站点服务器会对这个对象加锁,这是为了保证数据的统一性,假如如果不加锁,此时有数据插入,但因为没有加锁的原因,查询已经将这条记录读入,而有的插入会因为事务的失败会回滚,就会形成脏读的现象。
5:接下来就是对网站数据库用户权限的验证,SQL数据库语句语法,语义都正确,此时并不一定能够得到查询结果,假如如果网站数据库用户没有相应的访问权限,站点服务器会报出权限不足的错误给应用程序,在稍大的项目中,往往一个项目里面会包含好几个网站数据库连接串,这些网站数据库用户具有不同的权限,有的是只读权限,有的是只写权限,有的是可读可写,根据不同的操作办法选取不同的用户来执行,稍微不注意,无论您的SQL数据库语句写的多么完善,完美无缺都没用。
6:解析的最后一步,就是确定最终的执行计划。当语法,语义,权限都验证后,站点服务器并不会马上给您返回结果,而是会针对您的SQL进行网站seo优化,选择不同的查询算法以最高效的形式返回给应用程序。例如在做表联合查询时,站点服务器会根据开销成本来最终决定采用hash join,merge join ,还是loop join,采用哪一个索引会更高效等等,不过它的自动化网站seo优化是有限的,要想写出高效的查询SQL还是要网站seo优化自己的SQL查询数据库语句。
当确定好执行计划后,就会把这个执行计划保存到SQL计划数据缓存中,下次在有相同的执行请求时,就直接从计划数据缓存中取,避免重新编译执行计划。
第三步:数据库语句执行。
站点服务器对SQL数据库语句解析完成后,站点服务器才会知道这条数据库语句到底表态了什么意思,接下来才会真正的执行SQL数据库语句。
此时分两种情况:
1):假如如果查询数据库语句所包含的数据行已经读取到数据缓冲存储区的话,站点服务器会直接从数据缓冲存储区中读取数据返回给应用程序,避免了从物理网站网站文件中读取,提高查询速度。
2):假如如果数据行没有在数据缓冲存储区中,则会从物理网站网站文件中读取记录返回给应用程序,同时把数据行写入数据缓冲存储区中,供下次使用。
说明:SQL数据缓存分好几种,这里有兴趣的朋友可以去搜索一下,有时因为数据缓存的存在,使得咱们很难马上看出网站seo优化的结果,因为第二次执行因为有数据缓存的存在,会特别快速,所以一般都是先消除数据缓存,然后比较网站seo优化前后的性能表现,这里有几个经常用的的具体相关方法:
DBCC DROPCLEANBUFFERS
从缓冲池中删除所有清除缓冲区。
DBCC FREEPROCCAChE
从过程数据缓存中删除所有元素。
DBCC FREESYSTEMCAChE
从所有数据缓存中释放所有未使用的数据缓存条目。SQL Server 2005 网站数据库引擎会事先在后台清理未使用的数据缓存条目,以使内存可用于当前条目。但是,可以使用此开始执行命令从所有数据缓存中手动删除未使用的条目。
这只能基本消除SQL数据缓存的影响,目前好像没有完全消除数据缓存的方案,假如如果大家有,请指教。
执行顺序:
1. FROM 子句返回初始结果集。
2. WhERE 子句排除不满足搜索条件的行。
3. GROUP BY 子句将选定的行收集到 GROUP BY 子句中各个唯一值的组中。
4. 选择列表中指定的聚合函数可以计算各组的汇总值。
5. 此外,hAVING 子句排除不满足搜索条件的行。
6. 计算所有的表达式;
7. 使用order by对结果集进行排序。
8.查找您要搜索的字段。 关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。