当前位置:首页 » 存储配置 » 存储过程弊端

存储过程弊端

发布时间: 2023-03-22 10:13:22

‘壹’ 随着硬件性能的提升传统的计算与存储强耦合的方式有哪些弊端

随着硬件性能的提升传统的计算与存储强耦合的方式有以下弊端。
计算与存储强绑定,意味着两种资源总有一个是浪费的。
我们在对服务器进行选型的过程中,开始纠结是计算型、还是存储型,大大增加复杂度和降低通用性在云计算场景下,弹性的颗粒度是机器,不能真正做到资源的弹性。

‘贰’ 增加数据冗余,避免连接查询,这样好吗


本文首先讨论了基于第三范式的燃裤数据库表的基本设计,着重论述了建立主键和索引的策略和方案,然后从数据库表的扩展设计和库表对象的放置等角度概述了数据库管理系统的优化方案。
关键词: 优化(Optimizing) 第三范式(3NF) 冗余数据(Rendant Data) 索引(Index) 数据分割(Data Partitioning) 对象放置(Object Placement)
1 引言
数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争。为了便于读者阅读和理解,笔者参阅了Sybase、Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验,从基本表设计、扩展设计和数据库表对象放置等角度进行讨论,着重讨论了如何避免磁盘I/O瓶颈和减少资源竞争,相信读者会一目了然。
2 基于第三范式的基本表设计
在基于表驱动的信息管皮含简理系统(MIS)中,基本表的设计规范是第三范式(3NF)。第三范式的基本特征是非主键属性只依赖于主键属性。基于第三范式的数据库表设计具有很多优点:一是消除了冗余数据,节省了磁盘存储空间;二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护,也容易移植和更新;三老猛是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏、也不重复;四是因消除了冗余数据(冗余列),在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑I/O,每个Cash存的页面就多,也减少物理I/O;五是对大多数事务(Transaction)而言,运行性能好;六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。
在基本表设计中,表的主键、外键、索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们。实际上,它们与系统的运行性能密切相关。现在从系统数据库优化角度讨论这些基本概念及其重要意义:
(1)主键(Primary Key):主键被用于复杂的sql语句时,频繁地在数据访问中被用到。一个表只有一个主键。主键应该有固定值(不能为Null或缺省值,要有相对稳定性),不含代码信息,易访问。把常用(众所周知)的列作为主键才有意义。短主键最佳(小于25bytes),主键的长短影响索引的大小,索引的大小影响索引页的大小,从而影响磁盘I/O。主键分为自然主键和人为主键。自然主键由实体的属性构成,自然主键可以是复合性的,在形成复合主键时,主键列不能太多,复合主键使得Join*作复杂化、也增加了外键表的大小。人为主键是,在没有合适的自然属性键、或自然属性复杂或灵敏度高时,人为形成的。人为主键一般是整型值(满足最小化要求),没有实际意义,也略微增加了表的大小;但减少了把它作为外键的表的大小。
(2)外键(Foreign Key):外键的作用是建立关系型数据库中表之间的关系(参照完整性),主键只能从独立的实体迁移到非独立的实体,成为后者的一个属性,被称为外键。
(3)索引(Index):利用索引优化系统性能是显而易见的,对所有常用于查询中的Where子句的列和所有用于排序的列创建索引,可以避免整表扫描或访问,在不改变表的物理结构的情况下,直接访问特定的数据列,这样减少数据存取时间;利用索引可以优化或排除耗时的分类*作;把数据分散到不同的页面上,就分散了插入的数据;主键自动建立了唯一索引,因此唯一索引也能确保数据的唯一性(即实体完整性);索引码越小,定位就越直接;新建的索引效能最好,因此定期更新索引非常必要。索引也有代价:有空间开销,建立它也要花费时间,在进行Insert、Delete和Update*作时,也有维护代价。索引有两种:聚族索引和非聚族索引。一个表只能有一个聚族索引,可有多个非聚族索引。使用聚族索引查询数据要比使用非聚族索引快。在建索引前,应利用数据库系统函数估算索引的大小。
① 聚族索引(Clustered Index):聚族索引的数据页按物理有序储存,占用空间小。选择策略是,被用于Where子句的列:包括范围查询、模糊查询或高度重复的列(连续磁盘扫描);被用于连接Join*作的列;被用于Order by和Group by子句的列。聚族索引不利于插入*作,另外没有必要用主键建聚族索引。
② 非聚族索引(Nonclustered Index):与聚族索引相比,占用空间大,而且效率低。选择策略是,被用于Where子句的列:包括范围查询、模糊查询(在没有聚族索引时)、主键或外键列、点(指针类)或小范围(返回的结果域小于整表数据的20%)查询;被用于连接Join*作的列、主键列(范围查询);被用于Order by和Group by子句的列;需要被覆盖的列。对只读表建多个非聚族索引有利。索引也有其弊端,一是创建索引要耗费时间,二是索引要占有大量磁盘空间,三是增加了维护代价(在修改带索引的数据列时索引会减缓修改速度)。那么,在哪种情况下不建索引呢?对于小表(数据小于5页)、小到中表(不直接访问单行数据或结果集不用排序)、单值域(返回值密集)、索引列值太长(大于20bitys)、容易变化的列、高度重复的列、Null值列,对没有被用于Where子语句和Join查询的列都不能建索引。另外,对主要用于数据录入的,尽可能少建索引。当然,也要防止建立无效索引,当Where语句中多于5个条件时,维护索引的开销大于索引的效益,这时,建立临时表存储有关数据更有效。
批量导入数据时的注意事项:在实际应用中,大批量的计算(如电信话单计费)用C语言程序做,这种基于主外键关系数据计算而得的批量数据(文本文件),可利用系统的自身功能函数(如Sybase的BCP命令)快速批量导入,在导入数据库表时,可先删除相应库表的索引,这有利于加快导入速度,减少导入时间。在导入后再重建索引以便优化查询。
(4)锁:锁是并行处理的重要机制,能保持数据并发的一致性,即按事务进行处理;系统利用锁,保证数据完整性。因此,我们避免不了死锁,但在设计时可以充分考虑如何避免长事务,减少排它锁时间,减少在事务中与用户的交互,杜绝让用户控制事务的长短;要避免批量数据同时执行,尤其是耗时并用到相同的数据表。锁的征用:一个表同时只能有一个排它锁,一个用户用时,其它用户在等待。若用户数增加,则Server的性能下降,出现“假死”现象。如何避免死锁呢?从页级锁到行级锁,减少了锁征用;给小表增加无效记录,从页级锁到行级锁没有影响,若在同一页内竞争有影响,可选择合适的聚族索引把数据分配到不同的页面;创建冗余表;保持事务简短;同一批处理应该没有网络交互。
(5)查询优化规则:在访问数据库表的数据(Access Data)时,要尽可能避免排序(Sort)、连接(Join)和相关子查询*作。经验告诉我们,在优化查询时,必须做到:
① 尽可能少的行;
② 避免排序或为尽可能少的行排序,若要做大量数据排序,最好将相关数据放在临时表中*作;用简单的键(列)排序,如整型或短字符串排序;
③ 避免表内的相关子查询;
④ 避免在Where子句中使用复杂的表达式或非起始的子字符串、用长字符串连接;
⑤ 在Where子句中多使用“与”(And)连接,少使用“或”(Or)连接;
⑥ 利用临时数据库。在查询多表、有多个连接、查询复杂、数据要过滤时,可以建临时表(索引)以减少I/O。但缺点是增加了空间开销。
除非每个列都有索引支持,否则在有连接的查询时分别找出两个动态索引,放在工作表中重新排序。
3 基本表扩展设计
基于第三范式设计的库表虽然有其优越性(见本文第一部分),然而在实际应用中有时不利于系统运行性能的优化:如需要部分数据时而要扫描整表,许多过程同时竞争同一数据,反复用相同行计算相同的结果,过程从多表获取数据时引发大量的连接*作,当数据来源于多表时的连接*作;这都消耗了磁盘I/O和CPU时间。
尤其在遇到下列情形时,我们要对基本表进行扩展设计:许多过程要频繁访问一个表、子集数据访问、重复计算和冗余数据,有时用户要求一些过程优先或低的响应时间。
如何避免这些不利因素呢?根据访问的频繁程度对相关表进行分割处理、存储冗余数据、存储衍生列、合并相关表处理,这些都是克服这些不利因素和优化系统运行的有效途径。
3.1 分割表或储存冗余数据
分割表分为水平分割表和垂直分割表两种。分割表增加了维护数据完整性的代价。
水平分割表:一种是当多个过程频繁访问数据表的不同行时,水平分割表,并消除新表中的冗余数据列;若个别过程要访问整个数据,则要用连接*作,这也无妨分割表;典型案例是电信话单按月分割存放。另一种是当主要过程要重复访问部分行时,最好将被重复访问的这些行单独形成子集表(冗余储存),这在不考虑磁盘空间开销时显得十分重要;但在分割表以后,增加了维护难度,要用触发器立即更新、或存储过程或应用代码批量更新,这也会增加额外的磁盘I/O开销。
垂直分割表(不破坏第三范式),一种是当多个过程频繁访问表的不同列时,可将表垂直分成几个表,减少磁盘I/O(每行的数据列少,每页存的数据行就多,相应占用的页就少),更新时不必考虑锁,没有冗余数据。缺点是要在插入或删除数据时要考虑数据的完整性,用存储过程维护。另一种是当主要过程反复访问部分列时,最好将这部分被频繁访问的列数据单独存为一个子集表(冗余储存),这在不考虑磁盘空间开销时显得十分重要;但这增加了重叠列的维护难度,要用触发器立即更新、或存储过程或应用代码批量更新,这也会增加额外的磁盘I/O开销。垂直分割表可以达到最大化利用Cache的目的。
总之,为主要过程分割表的方法适用于:各个过程需要表的不联结的子集,各个过程需要表的子集,访问频率高的主要过程不需要整表。在主要的、频繁访问的主表需要表的子集而其它主要频繁访问的过程需要整表时则产生冗余子集表。
注意,在分割表以后,要考虑重新建立索引。
3.2 存储衍生数据
对一些要做大量重复性计算的过程而言,若重复计算过程得到的结果相同(源列数据稳定,因此计算结果也不变),或计算牵扯多行数据需额外的磁盘I/O开销,或计算复杂需要大量的CPU时间,就考虑存储计算结果(冗余储存)。现予以分类说明:
若在一行内重复计算,就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器更新这个新列。
若对表按类进行重复计算,就增加新表(一般而言,存放类和结果两列就可以了)存储相关结果。但若参与计算的列被更新时,就必须要用触发器立即更新、或存储过程或应用代码批量更新这个新表。
若对多行进行重复性计算(如排名次),就在表内增加列存储结果。但若参与计算的列被更新时,必须要用触发器或存储过程更新这个新列。
总之,存储冗余数据有利于加快访问速度;但违反了第三范式,这会增加维护数据完整性的代价,必须用触发器立即更新、或存储过程或应用代码批量更新,以维护数据的完整性。
3.3 消除昂贵结合
对于频繁同时访问多表的一些主要过程,考虑在主表内存储冗余数据,即存储冗余列或衍生列(它不依赖于主键),但破坏了第三范式,也增加了维护难度。在源表的相关列发生变化时,必须要用触发器或存储过程更新这个冗余列。当主要过程总同时访问两个表时可以合并表,这样可以减少磁盘I/O*作,但破坏了第三范式,也增加了维护难度。对父子表和1:1关系表合并方法不同:合并父子表后,产生冗余表;合并1:1关系表后,在表内产生冗余数据。
4 数据库对象的放置策略
数据库对象的放置策略是均匀地把数据分布在系统的磁盘中,平衡I/O访问,避免I/O瓶颈。
⑴ 访问分散到不同的磁盘,即使用户数据尽可能跨越多个设备,多个I/O运转,避免I/O竞争,克服访问瓶颈;分别放置随机访问和连续访问数据。
⑵ 分离系统数据库I/O和应用数据库I/O。把系统审计表和临时库表放在不忙的磁盘上。
⑶ 把事务日志放在单独的磁盘上,减少磁盘I/O开销,这还有利于在障碍后恢复,提高了系统的安全性。
⑷ 把频繁访问的“活性”表放在不同的磁盘上;把频繁用的表、频繁做Join*作的表分别放在单独的磁盘上,甚至把把频繁访问的表的字段放在不同的磁盘上,把访问分散到不同的磁盘上,避免I/O争夺;
⑸ 利用段分离频繁访问的表及其索引(非聚族的)、分离文本和图像数据。段的目的是平衡I/O,避免瓶颈,增加吞吐量,实现并行扫描,提高并发度,最大化磁盘的吞吐量。利用逻辑段功能,分别放置“活性”表及其非聚族索引以平衡I/O。当然最好利用系统的默认段。另外,利用段可以使备份和恢复数据更加灵活,使系统授权更加灵活。

‘叁’ 使用存储过程过多有什么弊端吗什么情况下使用存储过程不好

拼语句确实不好
不过滤下参数,整不好型乎会被注入SQL的

最好埋参数

存储过程好像是 比较复杂时候用的吧

我只卜源悉知道sql缓存, 如果一条语句执行过,下次再执裂者行就非常快了.不过要求挺苛刻,空格,大小写啥的必须一摸一样

‘肆’ 根据“存储程序”的工作原理,说明计算机的工作过程

“存储程序”原理,是将根据特定问题编写的程序存放在计算机存储器中,然后按存储器中的存储程序的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序结束执行。
1945年,美藉匈牙利科学家冯·诺依曼(J.Von Neumann)提出的,是现代计算机的理 存储程序
论基础。现代计算机已经发展到第四代,但仍遵循着这个原理。 存储程序和程序控制原理的要点是,程序输入到计算机中,存储在内存储器中(存储原理),在运行时,控制器按地址顺序取出存放在内存储器中的指令(按地址顺序访问指令),然后分析指令,执行指令的功能,遇到转移指令时,则转移到转移地址,再按地址顺序访问指令(程序控制)。
编辑本段技术特点
计算机系统由硬件系统和软件系统两大部分组成。冯·诺依曼结构(John von Neumann)也就是存储程序奠定了现代计算机的基本结构,其特点是: 1)使用单一的处理部件来完成计算、存储以及通信的工作。 2)存储单元是定长的线性组织。 3)存储空间的单元是直接寻址的。 4)使用低级机器语言,指令通过操作码来完成简单的操作。 5)对计算进行集中的顺序控制。 6)计算机硬件系统由运算器、存储器、控制器、输入设备、输出设备五大部件组成并规定了它们的基本功能。 7)彩二进制形式表示数据和指令。 8)在执行程序和处理数据时必须将程序和数据道德从外存储器装入主存储器中,然后才能使计算机在工作时能够自动调整地从存储器中取出指令并加以执行。
编辑本段发展历程
“电子计算机之父”的桂冠,被戴在数学家 冯·诺依曼(J.Von Neumann)头上, 而不是ENIAC的两位实际研究者,这是因为冯·诺依曼提出了现代电脑的体系结构。 1944年夏,戈德斯坦在阿贝丁车站等候去费城的火车,偶然邂逅数学家冯·诺依曼教授。戈德斯坦告诉他莫尔学院的电子计算机项目。
开始研究
从1940年起,冯·诺依曼就是阿贝丁试炮场的顾问。他向戈德斯坦表示,希望亲自到莫尔学院看看那台正在研制之中的机器。从此,冯· 诺依曼成为了莫尔小组的实际顾问,与小组成员频繁地交换意见。年轻人机敏地提出各种设想,冯·诺依曼则运用他渊博的学识,把讨论引向深入,并逐步形成电子计算机的系统 设计思想。 在ENIAC尚未投入运行前, 冯·诺依曼就看出这台机器致命的缺陷,主要弊端是程序 与计算两分离。程序指令存放在机器的外部电路里,需要计算某个题目,必须首先用人工 接通数百条线路,需要几十人干好几天之后,才可进行几分钟运算。 冯·诺依曼决定起草一份新的设计报告,对电子计算机进行脱胎换骨的改造。他把新 机器的方案命名为“离散变量自动电子计算机”,英文缩写是“EDVAC”。 1945年6月,冯 ·诺依曼与戈德斯坦、勃克斯等人,联名发表了一篇长达101页纸的报告,即计算机史上着名的“101页报告”,直到今天,仍然被认为是现代电脑科学发展里程碑式的文献。报告明确规定出计算机的五大部件,并用二进制替代十进制运算。EDVAC方案的革命意义在 于“存储程序”,以便电脑自动依次执行指令。人们后来把这种“存储程序”体系结构的 机器统称为“诺依曼机”。由于种种原因,莫尔小组发生令人痛惜的分裂,EDVAC机器无法被立即研制。1946年6月, 冯·诺依曼和戈德斯坦、 勃克斯回到普林斯顿大学高级研究院,先期完成了另一台 ISA电子计算机(ISA是高级研究院的英文缩写),普林斯顿大学也成为电子计算机的研究中心。
宣告完成
直到1951年,在极端保密情况下,冯·诺依曼主持的EDVAC计算机才宣告完成,它不仅可应用于科学计算,而且可用于信息检索等领域,主要缘于“存储程序”的威力。 EDVAC只用了3563只电子管和1万只晶体二极管,以1024个44比特水银延迟线来储存程序和 数据,消耗电力和占地面积只有ENIAC的1/3。 最早问世的内储程序式计算机既不是ISA,也不是EDVAC,英国剑桥大学威尔克斯(M.Wilkes)教授,抢在冯·诺依曼之前捷足先登。 威尔克斯1946年曾到宾夕法尼亚大学参加冯·诺依曼主持的培训班,完全接受了冯· 诺依曼内储程序的设计思想。回国后,他立即抓紧时间,主持新型电脑的研制,并于1949 年5月,制成了一台由3000只电子管为主要元件的计算机,命名为“EDSAC”(电子储存程序计算机)。威尔克斯后来还摘取了1967年度计算机世界最高奖——“图林奖”。
荣誉
在冯·诺依曼研制ISA电脑的期间,美国涌现了一批按照普林斯顿大学提供的ISA照片 结构复制的计算机。 如:洛斯阿拉莫斯国家实验室研制的MANIAC,伊利诺斯大学制造的 ILLAC。雷明顿·兰德公司科学家沃尔(W. Ware)甚至不顾冯·诺依曼的反对,把他研制 的机器命名为JOHNIAC(“约翰尼克” ,“约翰”即冯·诺依曼的名字)。冯·诺依曼的大名已经成为现代电脑的代名词,1994年,沃尔被授予计算机科学先驱奖,而冯·诺依曼本人则被追授予美国国家基础科学奖。
编辑本段主要成果
“英国剑桥大学威尔克斯(M.Wilkes)研制的EDSAC”(电子储存程序计算机)。 洛斯阿拉莫斯国家实验室研制的MANIAC。 伊利诺斯大学制造的 ILLAC。雷明顿·兰德公司科学家沃尔(W. Ware)研制的机器JOHNIAC 以及早期的微处理器大多采用冯诺依曼结构,典型代表是Intel公司的X86微处理器。取指和去操作数都在同一总线上,通过分时服用的方式进行的。缺点是在高速运行时,不能达到同时取指令和取操作数,从而形成了传输过程的瓶颈。

‘伍’ 十二存单法有什么弊端

资金灵活性较液搭镇差、收益率偏低
“十二存单法是整存整取,每一笔单独的存款都是定期。这样一来,它的弊端也比较明显,如资金灵活性较差、收益率偏低。不过大部分人选择这种方法投资,主要是看中了它的优势。它的优势有安全性高、收益稳定、循环投资、投资方便,可以说优势要大于弊端。”
拓展资料:
由个人或企业独自进行财富的积累和贮藏效率是比较低的。
1.首先,每个人即使贮藏数量很多也未必能保证需要。
其次,分散贮藏增加了全社会贮藏财富的总量,这样不仅增加了贮藏过程中财富的损耗,而且处于贮藏状态的财富得不到充分利用,社会经济效率必然是低下的。把个人的贮藏转化为社会性的贮藏,用较少的贮藏货币满足更多的使用需求。因为当很多人分散贮藏时可能每个人的钱都不够解决自己问题的,而集中贮藏和使用时,则可以解决任何一个人的问题。同时减少贮藏财富总量,可以把更多的资源用于生产经营,增加社会财富。社会性贮藏意味着有些人要使用他人的贮藏,也就是在用信用代替贮藏。
2.把货币作为贮藏手段可能造成生产和消费的不平衡,造成宏观经济波动。要避免这种情况应尽量减少货币作为贮藏手段使用,而货币的支付枝返手段职能可以部分取代贮藏手段职能。对需要储蓄的人来说,以现金方式存储或者以债券方式存储都是可以的,现金的优势在于流动性强,债券的优势在于可以生息。但从宏观经济角度看,则二者的效果完全不同。如果以现金方式存储,则这部分货币从流通中漏出,流通中的货币数量减少,影响物闹粗价的稳定并进而影响生产。如果以债券方式存储,则这部分货币又到了另一些人手中,继续参与经济循环,只是使用者改变,对经济没有影响。从社会合作的角度看,信用借贷是人与人之间的合作,而贮藏是个人的行为,前者比后者有更高的效率和更好的社会效果是很自然的事。

‘陆’ 调用存储过程sql 语句怎么写

存储过程中执行动态Sql语句
MSSQL为我们提供了两种动态执行SQL语句的命令,分别是EXEC和sp_executesql;通常,sp_executesql则更具有优势,它提供了输入输出接口,而EXEC没有。还有一个最大的好处就是利用sp_executesql,能够重用执行计划,这就大大提供了执行性能,还可以编写更安全的代码。EXEC在某些情况下会更灵活。除非您有令人信服的理由使用EXEC,否侧尽量使用sp_executesql.
1.EXEC的使用
EXEC命令有两种用法,一种是执行一个存储过程,另一种是执行一个动态的批处理。以下所讲的都是第二种用法。
下面先使用EXEC演示一个例子,代码1
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql =
'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+
CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'
EXEC(@sql);
注:这里的EXEC括号中只允许包含一个字符串变量,但是可以串联多个变量,如果我们这样写EXEC:

EXEC('SELECT TOP('+ CAST(@TopCount AS VARCHAR(10)) +')* FROM '+
QUOTENAME(@TableName) +' ORDER BY ORDERID DESC');

SQL编译器就会报错,编译不通过,而如果我们这样:

EXEC(@sql+@sql2+@sql3);

编译器就会通过;

所以最佳的做法是把代码构造到一个变量中,然后再把该变量作为EXEC命令的输入参数,这样就不会受限制了。

EXEC的缺点是不提供接口,这里的接口是指,它不能执行一个包含一个带变量符的批处理,如下
DECLARE @TableName VARCHAR(50),@Sql NVARCHAR(MAX),@OrderID INT;
SET @TableName = 'Orders';
SET @OrderID = 10251;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) +
'WHERE OrderID = @OrderID ORDER BY ORDERID DESC'
EXEC(@sql);
关键就在SET @sql这一句话中,如果我们运行这个批处理,编译器就会产生一下错误
Msg 137, Level 15, State 2, Line 1
必须声明标量变量 "@OrderID"。
使用EXEC时,如果您想访问变量,必须把变量内容串联到动态构建的代码字符串中,如:
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + 'WHERE OrderID = '+CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC'

串联变量的内容也存在性能方面的弊端。SQL Server为每一个的查询字符串创建新的执行计划,即使查询模式相同也是这样。为演示这一点,先清空缓存中的执行计划
DBCC FREEPROCCACHE (这个不是本文所涉及的内容,您可以查看MS的MSDN)
将代码1运行3次,分别对@OrderID 赋予下面3个值,10251,10252,10253。然后使用下面的代码查询

SELECT cacheobjtype,objtype,usecounts,sql FROM sys.syscacheobjects WHERE sql NOT LIKE '%cach%' AND sql NOT LIKE '%sys.%'

点击F5运行,我们可以看到,每执行一次都要产生一次的编译,执行计划没有得到充分重用。

EXEC除了不支持动态批处理中的输入参数外,他也不支持输出参数。默认情况下,EXEC把查询的输出返回给调用者。例如下面代码返回Orders表中所有的记录数
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'SELECT COUNT(ORDERID) FROM Orders';
EXEC(@sql);
然而,如果你要把输出返回给调用批处理中的变量,事情就没有那么简单了。为此,你必须使用INSERT EXEC语法把输出插入到一个目标表中,然后从这表中获取值后赋给该变量,就像这样:

代码
DECLARE @sql NVARCHAR(MAX),@RecordCount INT
SET @sql = 'SELECT COUNT(ORDERID) FROM Orders';
CREATE TABLE #T(TID INT);
INSERT INTO #T EXEC(@sql);
SET @RecordCount = (SELECT TID FROM #T)
SELECT @RecordCount
DROP TABLE #T2

2.sp_executesql的使用
sp_executesql命令在SQL Server中引入的比EXEC命令晚一些,它主要为重用执行计划提供更好的支持。
为了和EXEC作一个鲜明的对比,我们看看如果用代码1的代码,把EXEC换成sp_executesql,看看是否得到我们所期望的结果

代码
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT ,@sql2 NVARCHAR(MAX);
SET @TableName = 'Orders ';
SET @OrderID = 10251;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE OrderID = '+CAST(@OrderID AS VARCHAR(50)) + ' ORDER BY ORDERID DESC'
EXEC sp_executesql @sql

注意最后一行;事实证明可以运行;
sp_executesql提供接口
sp_executesql命令比EXEC命令更灵活,因为它提供一个接口,该接口及支持输入参数也支持输出参数。这功能使你可以创建带参数的查询字符串,这样就可以比EXEC更好的重用执行计划,sp_executesql的构成与存储过程非常相似,不同之处在于你是动态构建代码。它的构成包括:代码快,参数声明部分,参数赋值部分。说了这么多,还是看看它的语法:

EXEC sp_executesql

@stmt= <statement>,--类似存储过程主体

@params = <params>, --类似存储过程参数部分,声明参数类型

<params assignment> --类似存储过程调用,为参数赋值,参数值要和参数顺序要一一对应,也可以通过为参数指明参数值的方式为其赋值

@stmt参数是输入的动态批处理,它可以引入输入参数或输出参数,和存储过程的主体语句一样,只不过它是动态的,而存储过程是静态的,不过你也可以在存储过程中使用sp_executesql;
@params参数与定义输入/输出参数的存储过程头类似,实际上和存储过程头的语法完全一样;
@<params assignment> 与调用存储过程的EXEC部分类似。
其实@stmt,@params可以省略,那么exec sp_executesql的语法就可以简写成如下格式:

EXEC sp_executesql
<statement>,
<params>,
<params assignment>

为了说明sp_executesql对执行计划的管理优于EXEC,我将使用前面讨论EXEC时用到的代码。

代码
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT;
SET @TableName = 'Orders ';
SET @OrderID = 10251;
SET @sql = 'SELECT * FROM '+@TableName + ' WHERE OrderID = @OID ORDER BY ORDERID DESC'
--注意当要对动态sql语句的表名实行参数化时,不可以如下表示:
--set @sql='select * from @TableName where OrderID=@OID ORDER BY Orderid desc',
--如果这样会提示必须声明标量变量@TableName,只可以如上面所写的一样,将表名@TableName作为变量名进行拼接

EXEC sp_executesql
@sql,
N'@OID int ',
@OID = @OrderID

下面我们看看exec sp_executesql的执行效率,在调用该代码和检查它生成的执行计划前,先清空缓存中的执行计划;
DBCC FREEPROCCACHE
将上面的动态代码执行3次,每次执行都赋予@OrderID 不同的值,然后查询sys.syscacheobjects表,并注意它的输出,优化器只创建了一个备用计划,而且该计划被重用的3次

SELECT cacheobjtype,objtype,usecounts,sql FROM sys.syscacheobjects WHERE sql NOT LIKE '%cache%' AND sql NOT LIKE '%sys.%' AND sql NOT LIKE '%sp_executesql%'

点击F5运行。
sq_executesql的另一个与其接口有关的强大功能是,你可以使用输出参数为调用批处理中的变量返回值。利用该功能可以避免用临时表返回数据,从而得到更高效的代码和更少的重新编译。定义和使用输出参数的语法与存储过程类似。也就是说,你需要在声明参数时指定OUTPUT子句。例如,下面的静态代码简单的演示了如何从动态批处理中利用输出参数@p把值返回到外部批处理中的变量@i.

DECLARE @sql AS NVARCHAR(12),@i AS INT;
SET @sql = N' SET @p = 10';
EXEC sp_executesql
@sql,
N'@p AS INT OUTPUT',
@p = @i OUTPUT
SELECT @i --该代码返回输出10

以字母 N 为前缀标识 Unicode 字符串常量
总结以下几点:
一.使用exce sp_executesql效率比exec要高,同一类型的语句,只需编译一次即可,而exec执行几次就需要编译几次。
二.构造动态sql的where子句,也就是条件子句时,exec无法使用变量来进行站位,需要将变量转换成字符串,然后和动态sql进行拼接,这就可能引起Sql注入问题,如下:

SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) +
' WHERE OrderID = '+CAST(@OrderID AS VARCHAR(50)) + ' ORDER BY ORDERID DESC'

而若使用exec sp_executesql则可以使用变量来进行站位,以后再给这个参数传值的放式构造动态sql,就避免的Sql注入的问题,如下:
SET @sql = 'SELECT * FROM '+@TableName + ' WHERE OrderID = @OID ORDER BY ORDERID DESC'

三.无论是Exec还是Exec sp_executesql,如果想要将表名和列名进行动态参数化,不可以使用表名参数和列名参数来进行站位,而且表名参数和列名参数需要使用存储过程的参数.对 于exec sp_executesql来说,不可以将表名参数和列名参数在指定为在exec sp_executesql参数声明部分声明的参数,如:

代码
create PROCEDURE GetData
@tbName nvarchar(10),
@colName nvarchar(10),
@Name nvarchar(10)
AS
BEGIN
declare @sql nvarchar(50);
set @sql='select '+ @colName+' from ' +@tbName+ ' where name=@whereName';
--注意此句不可以写成如下:
-- set @sql='select @colName from @tbName where name=@whereName';
exec sp_executesql
@sql,
N'@whereName nvarchar(10)',
@Name
END

也就是说exec sp_executesql语句的参数声明部分只能声明动态sql的where子句的参数。

‘柒’ SQL 关联字段C#

直接在sqlserver中用触发器不就行了,插入主表时添加字表

‘捌’ 中小企业存货管理的会计论文

中小企业存货管理的会计论文篇1

岁则中小企业存货管理存在的问题及对策

摘 要:存货管理是当前中小企业在生产经营管理过程中应高度关注的内容,库存会涉及到生产经营的各个环节,并且贯穿着整个生产的流程,具有占用资金大的特点,而且品种繁多,特别是业务涉及的范围较广,所以针对存货的管理至关重要。提高库存的工作效率,强化库存的管理,是当前企业面临的不可避免的研究课题,本文主要通过实践中企业管理过程库存管理的现状进行详细的分析,积极探索库存管理过程中可友贺能面临的关键性问题,制定出合理化的库存管理战略,强化中小企业在市场经济中地位,提高市场竞争的软实力,促进企业的快速健康发展。

关键词:中小企业;存货管理;库存管理

一、加强中小企业存货管理的必要性

目前,流动资产在中小企业的发展中起着关键性的作用,期间存货会占据较高的比重,因存货会贯穿于企业生产的全过程,从长远的经济利益来看,存货如果管理不当将会影响到企业的长远发展,长期经济发展的战略将会因此受到影响。企业如果想在竞争中保持一定的持续经营的水平,关键还在于内部的存货管理,存货占据企业的关键性位置,合理的规划好企业的存货,才能有效地整合企业资源,实现资源的优化配置,积极防止可能出现的存货问题。现阶段,中小企业处于创业发展的初步阶段,内部管理各个方面的制度较为落后,将会在激烈的市场竞争中面临巨大的挑战,存货的最大价值将会难以实现,所以企业更应该密切的关注于此问题的研究。

当前,存货管理问题是中小企业需要亟待解决的问题,有效的存货管理能够实现管理的目标。流动资产是否安全和完整,是财务管理的关键,还是企业财务收支保证的关键。针对中小企业存货管理的研究,可以确保企业实现内部自我的调整,存货管理部门彼此间形成制约和监督,对现实具有实际的借鉴意义。我国市场经济在不断的发展和壮大中,中小企业逐渐成为国内外关注的焦点,中小企业具有生命力旺盛的特点,在市场经济的发展中起着无法衡量的价值,但是中小企业内部管理上仍然会暴露出一系列的管理问题,其中存货管理的意识淡薄,只有更好的完善存货管理,才能降低存货管理资金,促进中小企业健康快速的发展。

二、中小企业存货管理存在的问题分析

1.库存积压现象较为明显,存储量设置较为不合理。很多中小企业流动资金往往都是被库存所占用,很多中小企业的仓储管理较差,导致存货积压严重,占用了大量的流动资金,导致企业流动资金额度逐年呈上升的趋势,这样会大量的占用资金,阻碍企业进行生产经营的周转,尤其是存货储备资金占用的明显,占流动资金总额的比重较大,资金管理就会产生困难,甚至有时会出现资金周转的问题。据相关数据统计,大部分中小企业存货资金的管理占用资产总额的40%左右,虽然各个行业的标准不一致,但是其所占的比重来看,仍然是属于较高的比重,其还仍然是不容忽视的问题。但是企业还是疏于对其的管理,导致流动资金管理出现问题,不严加的管理将会导致资金周转的速度逐渐成下降的趋势,长期来看影响是巨大的,达到一定的影响后将会严重阻碍企业正常生产经营活动。

2.库存管理人员岗位职权划分不清,内部控制制度职能落实不到位。追求利益最大化虽然是企业的目标,但是盲目的追求就会导致一系列的弊端,例如内乎告棚控管理上制度设置不合理,部门的人事管理较为落后,一个人身兼多职的现象仍然普遍,在加上很多岗位在设置岗位时就没有明确岗位的职责,往往没有特别专注于库存的管理,对最初存货的购买等如果稍加注意,就会避免可能存在的存货滞留,有时很多工作人员忽视对存货的保管,在相关数据的记录上缺乏认真的态度,记录数据往往是应付差事,结果就是丧失了大量的库存浪费。

3.第三方物流没有真正的应用,合理优化内部和外部物流资源是关键。传统上只是简单的对内部物流进行管理,长期形成一定的惯性,因此,整合物流资源上却忽视了对外部物流资源的利用,仍然坚持原有的内部自营物流为主,长期还会忽视很多内部资源的浪费,特别是人力、财力和物力。纵观存货管理的全过程,从采购、入库、领用、出库的各个环节都需要积极有效的整合,真正的整合好内部资源,才能真正的利用好物流资源。对外物流管理上,第三方物流管理的利用率较低,往往观念上较为传统,没有形成开放性的思维模式。由于内部物流的长期使用,导致成本较高,虽然好似节省了一定的外部费用,但是根本上还是影响到了企业的利润,增加了部分的成本费用,影响到了利润最大化的目标。

4.存货内部管理制度中仍然存在弊端。传统物流没有将供应链很好地管理和整合,给企业的竞争策略带来阻碍。传统观念上只是简单的分散物流管理,缺乏供应链的整合认识,忽视整合带来的价值。对建立全面的供应链系统管理的认识不足,片面的认为只是成本运输管理,以及仅仅是采购成本的管理模式,忽视机会成本的损失。很多部门忽视对物流管理,特别是对其的成本管理,物流管理的各个部门间如果出现了问题,就只是进行相互的'推诿、相互扯皮,难以形成有效的沟通协调机制。

三、强化中小企业存货管理的应对策略

1.提高企业员工的专业技能,强化职业技能培训工作的力度。仓储人员综合素质的高低关乎企业长远的发展,这样特殊岗位的培训工作,是企业进行仓储管理的关键,尤其是选好优秀的仓储管理人员是库存管理的关键。建立人力资源管理制度,设置重重关卡,加强对专业用具的管理,强化考核力度,通过绩效考核加强对专业用具的管理,良好的培训学习管理,会调动工作的热情,加强岗位的归属感,使之通过专业技能及专业知识的学习,快速的增加工作经验,选择学习成绩较好的人员担任重要的岗位,例如实行周期性的岗位轮换,定期进行盘点库存的工作,加强对财务核算知识的学习,不断提高财务管理的业务水平。

2.仓储管理上选定适合的存储结构,例如在订货管理上选择合适的订购方式,明确合理的方式方法后,在确定最佳的库存存储量。还可以采用经济批量法进行合理的计算,计算出最佳的采购数,在保证质量的基础上确定最佳的采购基数,以此确保量的提高,才能真正的保证内部存储环境。良好的库存管理能够降低成本,及时订购相关数量的库存产品,防止不必要的产品积压是关键,目的就是改变原有模式的弊端,真正实现降低总成本的目标。

中小企业存货管理的会计论文篇2

中小企业存货管理中的问题与解决对策

一、我国中小企业存货管理的现状

我国的证券市场起步于上世纪90年代初期,经过二十年发展,在上市公司会计信息披露方面取得了很大的成绩。在经济制度越发完善,监管部门权责更加分明,投资者对会计信息的要求越来越高的今天,上市公司会计信息披露正在向着好的方向发展,但依然存在着一些不足。

存货是指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在产品、在生产过程中或提供劳务过程中耗用的材料、物料等。存货是企业赖以生存和发展的基本元素,是企业重要的流动资产,对它管理的好坏直接影响到企业的资金占用水平以及资产运作,在企业管理中占有重要地位。而存货的管理一方面在于保证企业生产经营的需要,防止存货的不足;另一方面加速存货参与周转,缩短存货周转时间,从而避免占用过多的资金。

目前,由于许多企业,特别是一些中小企业,对存货管理的重要性认识不足,管理粗放,所以表现出基础薄弱、起点较低,其管理停留在单打独的家族传统粗放型的管理层次上,无健全的、完善的内部管理制度,更没有认识或重视到企业存货控制和管理经营过程中的重要环节。另一方面,国内许多企业甚至是上市公司,他们把过多的精力放在了生产和销售上,忽视了存货的限额和数量控制,从而造成存货积压,导致公司现金流出现断裂,产品生产不畅、资金积压严重等问题,严重制约了企业自身的发展。在新形势下,中小企业应加强存货管理力度,不断完善内部管理结构,以适应不断变化的市场环境。

二、我国中小企业存货管理中存在的问题

(一)不完善的内部控制制度

中小企业普遍机构设置不完整,管理人员往往身兼数职。批准采购与验收材料的权限经常由仓库主管一人所拥有,同时该部门负责对所采购的原材料与产成品的保管,这就缺乏权限的相互制约,容易使内部人员,特别是仓库主管利用存货获取个人利益,给企业造成不必要的损失。

(二)存货管理的模式不合理

中小企业的存货管理偏重与内部物流系统的利用,而忽视了企业外部物流资源的整合。一般中小企业的存货管理都包括计划、采购、储存、领用、出库等过程,这便占用了大量的人力、财力、物力,显然没有充分利用和整合社会物流管理资源。而且,在存货管理中,它注重了存货的收、发、存的管理和实物保全,但对存货的价值管理不够重视。在管理手段上,中小企业更多注重运用数学模型,确定最佳经济批量和最佳进货时间,却没有通过优化业务流程,加强信息系统的建设来优化存货管理。

(三)存货计量的方法不恰当

中小企业在存货的计价方法的选择上不够合理,不仅在材料的领用记录、生产成本及费用的归集、结转的记录方面人为的因素比较多,且对发出的存货,采用了不同的计价方法对中小企业财务状况和经营成果都会产生不同的影响。而且中小企业的存货计价存在随意性的特点,一方面对资产负债表的真实性产生影响,使会计报表的使用者无法真正了解企业拥有或控制的资产总额及构成情况;另一方面影响损益表的真实性,使其无法真正了解企业实现的利润与发生的亏损情况,无法正确评价企业的经营业绩;再一方面就是影响各项比率指标的分析,从而使会计资料的使用者造成错误的分析与决策。

三、关于我国中小企业存货管理中的一些的建议

(一)完善企业内部控制

企业应当建立健全存货管理制度,严格规定存货的购进计价方法、发出方法、盘存方法,并且严格按照企业会计准则的规定,计价方法一经确定,不得随意变更;企业应设置明确的请购、付款、销售、收款、保管等岗位职责,对于人员较少的小单位来说,有的岗位职责可能会交叉,对于交叉的这些岗位,管理当局更应该关注职员的尽责情况以及采取相应的防范措施。存货管理是由管理人员执行的,所以要加强存货管理必须从加强存货管理人员的培训入手。

(二)制定适应企业自身情况的存货采购流程

首先,是为了保证企业不间断的生产对原材料的需求,应有一定的存储量;其次,为了满足产品销售批量化、经常化的需要,更应该有足够的半成品、产成品存储量;再次,为了保证企业均衡生产并降低生产成本,应有一定的存储量;最后,为了避免或减少经营中可能出现的失误和意外事故对企业造成的损失,也应有一定的存储量。因此,作为企业经营管理者必须对存货科学的采购和控制库存量的水平起到重要作用。

(三)改善企业存货存储过程缺陷

入库过程是材料物资经验收合格后入库并录入入库单的过程;出库过程是物资需求部门按照原需求计划提出领料申请,经物资部门审核批准后发料并录入出库单的过程。对出入库工作的管理,关键问题是监督机制的建立。企业财务部门应当每月对所有入库单、出库单进行核查,并形成财务凭证,实现财务管理物资管理的结合,至此完成物资在库存过程的管理。

(四)加强企业存货核算管理

存货核算管理系统是企业通过应用物资管理系统实现效益目标。对存货进行管理与核算,就是要通过对各项存货的收发存业务进行会计处理,及时准确地将各类存货成本归集到各成本对象和成本项目上,并全面准确地掌握企业存货的耗用状况,实现物资在价值形态上的管理,动态地反映存货资金的增减变动,提供存货资金周转和占用情况的分析,为实现最佳储备提供依据。在管理上,企业应特别建立应用机制,定期对企业存货成本构成情况、存货资金占用情况、资金的使用效果情况进行控制与监督,同时,在特定条件下,不定期地对物资经营管理情况进行专项的或全面的控制与分析。

参考文献:

[1]吉文丽。企业存货管理的问题和思考[J].中国乡镇企业会计,2009,(05)

[2]王利敏。中小企业存货管理存在的问题和对策[J].北京:中国人民大学出版社,2005

[3]陈斯雯。企业存货核算与库存管理技巧[M].北京:经济科学出版社,2007,(7)

中小企业存货管理的会计论文篇3

如何加强中小企业的存货管理

摘要:国内经济的快速发展对中小企业的存货管理提出了更高的要求,进行有效的存货管理已成为我国中小企业生存和发展的头等要务。文章从加强存货管理的重要性出发,分析了当前我国中小企业存货管理中存在的主要问题,并提出了加强中小企业存货管理的建议和对策。

关键词:中小企业;存货管理;对策

存货是一把双刃剑,它是企业供需平衡的根本保障,没有存货,企业就无法正常运行,然而,他也是企业的“坟墓”,一旦管理不善,存货造成积压、资金周转困难以及由产品技术更新过快造成的存货淘汰,就会给企业经营活动造成极大的障碍,同时由于存货资金沉淀过多,增加企业资金使用成本和存货风险成本,可能把企业拖入深渊,蒙受巨大的经济损失。一直以来存货问题始终困扰着中小企业的生产经营管理活动,影响中小企业经济效益的实现,因此重视存货管理,改善存货管理,对提高中小企业的经营成果有重要的影响。

一、加强存货管理的重要性

存货属于企业的流动资产,包括准备出售的产成品、仍在生产过程中的在产品、生产所要耗用的原材料和物料等。企业存货的好处主要表现在能调节生产负荷、提高企业服务水平、获得规模效益、降低物流成本等,过量存货或存货不足对企业的影响主要表现在过量存货会增加存货保管费用、占用过多资金,导致资金周转不灵、降低了材料或产品的质量、存货不足时则会影响企业服务质量或是造成企业停工待料等问题。因此,我国中小企业加强存货管理的意义主要表现为:首先加强存货管理是维持企业生产和销售均衡的需要,充足的存货一方面可以节约采购费用,另一方面又有利于生产正常进行,实际上即使市场供应充足的时候,存货也会出现问题,如供应距离、运输过程出现的种种故障等,因此企业需要通过一定的存货来维持生产或销售的均衡需要;其次,加强存货管理是考虑采购成本的需要,批量采购相对于零星采购能节约更多的采购费用,但过多的存货也会占用较多的资金,增加仓储成本和管理成本等,因此企业应通过加强存货管理在二者之间取得一定的平衡。

二、我国中小企业存货管理现存主要问题

第一,企业对存货管理的重视不够,存货管理制度不完善。中小企业大多会受到管理人员专业素质的制约,对存货管理重视程度不高,仅是停留在保证正常生产和销售的这一层面上,对企业的销售数据和存货历史数据分析力度不够,使得企业存货成本长期处于失控状态中。同时,大多数中小企业尚欠缺完善的存货管理制度,或是即使有相关制度也缺乏严格的考核和监督,存货管理制度执行流于形式。实际操作中,中小企业验收人和采购人往往为同一人,增加了存货流转过程徇私舞弊的风险,且企业对于单价小、规格多的存货没有形成统一的分类管理办法,不利于企业做到全方面的控制。

第二,存货管理信息化程度较低。很多中小企业对存货的管理还处于初级模式,尚未实现信息化管理,大多采用手工操作或计算机管理并行的方式来管理存货,这种情况下容易导致企业存货核算不准确,账实不符,无法对存货进行及时监控,偷盗现象时有发生,不利于企业的内部管理。虽然也有部分中小企业建立了健全的存货管理信息系统,但这样的系统稳定性、准确性较差,除记载存货的收、发、存的数量外,其他方面数据很不健全,与供应商也不能联网,存货信息无法第一时间得到反馈,常会误导企业采购行为,存货实物管理混乱、存货信息不准,造成存货脱销或积压,无法实现为企业资金管理提供决策依据。

第三,缺乏科学的存货采购计划。科学的存货采购计划是中小企业存货管理的薄弱环节。目前,我国大多数中小企业往往把存货管理的重点放在原材料采购和成品的销售上,过于忽视存货成本和存货资金占用情况,缺乏科学的采购计划和销售预测,仅凭感觉进行采购,不能按物资实际需求量提出采购申请,无法对存货进行定性和定量的控制,没有形成采购存货的限额责任管理,容易导致供不应求或供过于求等不合理状况,严重影响企业的正常经营活动。另一方面,由于没有科学的采购计划,中小企业采购中常出现频繁采购现象,大大增加了企业的采购成本。

第四,存货管理内部控制问题突出。一是中小企业在职能分工上不尽合理,管理人员往往身兼数职,人材料采购、验收和产品销售等可能均由同一人来完成,容易出现质次价高、缺斤短两、企业资产流失等现象;二是中小企业人员监管制度不规范,例如一些中小企业仅凭采购人员提供的发票入账、报销,容易滋生采购人员与供应商之间相勾结的行为;三是大多数中小企业均缺乏内部审计机构,或是相关职能被弱化了,企业既无规范的存货管理规则,也没有相应的存货盘点制度,忽视对存货的仓储、保管、领用、报废等方面的控制。

三、加强中小企业存货管理的建议和对策

第一, 完善企业存货管理制度。首先,加强存货采购控制,。由采购部门编制采购计划经审批后再进行采购,加强与供应商的谈判力度,确保采购合同按时、按质、按量完成,在验收方面,相关部门应就运单、发票、合同进行严格验收,建立保管责任制,保证存货安全,在资金支付结算上财会部门应就合同、验收单、入库单、付款通知等进行审核,确认无误后再付款。其次,完善领用管理制度,建立规范的出库制度,做到只要存货发出,就要严格填制存货出库凭证,建立存货定期盘点清查制度,严格按照存货盘点单要求记录当前存货情况,确保账实相符。再次,完善销售管理制度,规范销售发出存货提取程序,要求见单发货,并要求财务人员通过存货周转天数、存货周转率等指标加强存货管理。

第二,加强存货管理信息化建设。随着经济信息化的推进,中小企业应充分重视存货的信息化管理,建立适合自身发展的信息化管理系统,健全实物流转信息与账务处理信息及时化通道,便于相关人员可以实时、动态了解存货信息,以实现企业存货资金的有效管理,保持企业强大的竞争力。例如,中小企业可以使用ERP信息管理系统,它能够将企业物资资源、资金资源和信息资源有效整合在一起,同时通过ERP系统企业可以实现存货信息资源在各部门或是部门与供应商之间的共享,有利于企业对资金、货物、人员和信息的全方位监控,有效阻止企业各部门各自为政、信息阻塞、账实不符等问题的发生。

第三,加强存货采购管理,完善采购计划。一是规范采购行为,对采购货物的品质、价格、数量等进行动态监控,增加采购透明度,要求做到“货比三家”,选择信誉好、价格低、质量优的供货企业;二是运用科学方法计算存货成本,目前我国中小企业大多采用移动加权平均法作为存货计价的方法,但这种方法工作繁琐且工作量大,需要有专人负责,随着电算化系统在中小企业的推广,建议使用个别计价法进行存货计价,这种方法确定的存货成本最为准确;三是提高采购计划人员综合素质,采购计划员要有较高的业务素质,对生产工艺流程及设备运行情况要有充分的了解,掌握设备维修、备件消耗情况及生产耗用材料情况,进而做出科学合理的存货采购计划。

第四,采用科学的存货管理模式,控制最佳库存量。传统的库存管理方法包括:ABC分类法,依据存货成本价值和用量大小、重要程度对存货进行管理;定量订货模型,指当库存量下降到预定最佳库存数量(订货点)时便按规定数量进行订货补充;定期订货模型则是按预先确定的订货间隔期间进行订货补充库存,每次订货数量不同,其需要连续盘点库存以便达到订货点就发出订单。另外,中小企业也可以通过加强供应链管理来实现最佳库存量,供应链库存管理是将传统供应模式产生订单进行补货改变成以实际或预测的消费需求进行补货,是在企业与供应商相互合作的基础上,基于双方成本最优原则,由供应商管理库存,确定库存水平和补给的策略,控制最佳库存量,其主要步骤包括选择合适的供应商、建立与供应商及时的信息共享机制以及进行JIT操作。

第五,加强存货内部控制。中小企业存货内部控制应做到以下几点:一是中小企业应根据自身生产经营特点,建立与供应、销售方的信息共享机制,严格采购和销售制度,有效发挥存货内部控制制度;二是建立存货业务岗位责任制,要求相容职能相分离,如存货请购与审批、采购的验收与付款等,确保各岗位之间能够相互制约和监督;三是建立一套科学合理的授权审批制度,规范存货管理的授权审批方式、程序和权限,严禁未经授权人员办理存货业务;四是完善存货业务流程控制,包括存货的取得、验收、入库、仓储、保管、领用、处置等环节的工作控制,确保存货管理内部控制制度能够在企业存货管理的全方位严格执行,并进行合理的奖惩。

总之,一直以来存货问题始终困扰着中小企业的生产经营管理活动,影响中小企业经济效益的实现,因此重视存货管理,改善存货管理,对于提高中小企业的经营成果,保障中小企业健康、稳定发展具有十分重要的作用。

参考文献:

1.周培行.探析企业存货管理存在的问题及对策[J].现代商业,2011(9).

2.王娟.也谈中小企业存货管理策略问题[J].经济师,2012(6).

3.徐文静.浅析中小企业存货管理问题[J].企业导报,2011(1).


热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:741
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372