以下代码是我在网上找到的: 
--------------------------------------------------- 
    XDocument xml = XDocument.Load(Server.MapPath("Sample.xml")); 
        // 创建需要新增的XElement对象 
        XElement person = new XElement( 
            "person", 
            new XAttribute("name", txtName.Text), 
            new XAttribute("age", txtAge.Text), 
            new XAttribute("salary", txtSalary.Text));         // 添加需要新增的XElement对象 
        xml.Root.Add(person); 
        
        // 保存xml 
        xml.Save(Server.MapPath("Sample.xml")); 
---------------------------------------------------    
我的问题是当这个Sample.xml文件超级大时,这样读取和保存是怎么样的? 
读取时是把整个Sample.xml文件读到内存中吗? 
存储时也是把整个Sample.xml文件从内存中读出并写入磁盘吗? 
我是想用XML作网站的数据存储,将来数据量会很大,我严重担心如果是我上面提出的问题的话,那服务器会吃不销的。 
它上面的XDocument xml = XDocument.Load(Server.MapPath("Sample.xml"));这段代如果只是类似拿到个句柄在到Sample.xml文件中查找我要的数据还好,担心它是把它全部拿到内存中。 
还有这个xml.Save(Server.MapPath("Sample.xml"));如果只是仅仅得到要修改的数据并写入要修改的部分还好,我担心它是不是整个文件都重写,这样要消耗大量资源的(如果我的Sample.xml文件内容巨大的话)。 请教各位了!谢谢 

解决方案 »

  1.   

    使用XML作网站的数据存储效率会比较低,建议采用数据库存储~
    个人认为使用XML比较有优势的场合是服务器返还数据的时候,例如AJAX技术,可以用javascript中的document对象处理。还有就是web server 
      

  2.   

    用Load方法时,它会把整个文件倒入到内存里,在内存中生成树状结构,供你读写,当文件较大时会很占资源,性能很差.提高性能的话,得先分析文件的操作方式:1.只读.可以用XmlTextReader.它比XmlReader还要快一些,我的感觉是,当数据量较大时,会明显比从数据据库调数据快,它的耗时跟从硬盘直读差不多.2.只写(追加).微软有个例子,用实体引用的方式很好的解决了这个问题,速度相当可以.3.频繁修改.把信息分类存在多个xml文件中.要么你就用数据库.如果以前没用过XML这种单一存储方案,又赶时间的话,还是用数据库吧,不然容易耽误事.