tag:blogger.com,1999:blog-695984655367698186.post492655052994384247..comments2023-08-02T16:37:06.853+02:00Comments on HR Access ... and Me: Boucle de mise a jour SQL avec COMMITs intermédiairesDiGixhttp://www.blogger.com/profile/03595785699258792074noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-695984655367698186.post-68964993803426903832016-09-13T17:03:34.404+02:002016-09-13T17:03:34.404+02:00Une version pour DB2, trouvée sur "http://www...Une version pour DB2, trouvée sur "http://www.daharveyjr.com/delete-using-commit-count-db2-stored-procedure/", a exécuter avec un "db2 -td@" ...<br /><br />BEGIN<br /> -- DECLARE Statements<br /> DECLARE v_DELETE_QUERY VARCHAR(1024);<br /> DECLARE v_DELETE_STATEMENT STATEMENT;<br /> SET v_DELETE_QUERY = 'DELETE FROM (SELECT 1 FROM ... WHERE ... FETCH FIRST 99 ROWS ONLY) AS DELETE_TABLE';<br /> PREPARE v_DELETE_STATEMENT FROM v_DELETE_QUERY;<br /> DEL_LOOP:<br /> LOOP<br /> EXECUTE v_DELETE_STATEMENT;<br /> IF SQLCODE = 100 THEN<br /> LEAVE DEL_LOOP; <br /> END IF;<br /> COMMIT;<br /> END LOOP;<br /> COMMIT; <br />END@DIGIXnoreply@blogger.comtag:blogger.com,1999:blog-695984655367698186.post-91382154781090359632012-12-11T16:03:49.954+01:002012-12-11T16:03:49.954+01:00Merci pour ces explications qui me permettent de m...Merci pour ces explications qui me permettent de mieux appréhender cette problématique.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-695984655367698186.post-11055016150762801422012-11-20T18:21:21.147+01:002012-11-20T18:21:21.147+01:00- Prenez le tablespace FRIGO
- Créez la table LAIT...- Prenez le tablespace FRIGO<br />- Créez la table LAIT et la table JUS<br />- Oracle va attribuer a chacune une première Bouteille (un "Extent")<br />- Faites des INSERT dans LAIT<br />- Au fur et à mesure du remplissage, Oracle va ajouter de nouvelles bouteilles de LAIT dans le FRIGO<br />- Quand le FRIGO sera plein il ne sera plus possible d'ajouter de bouteilles - ni de LAIT ni de JUS<br /><br />Un DELETE dans LAIT va permettre de vider les Bouteilles de LAIT, mais pas de les mettre à la poubelle, FRIGO reste plein. il ne sera toujours pas possible d'ajouter de bouteilles de JUS<br /><br />Le TRUNCATE REUSE STORAGE vide intégralement les bouteilles de LAIT sans retour arrière possible, mais ne les jette pas à la poubelle. Il ne sera toujours pas possible d'ajouter des bouteilles de JUS.<br /><br />Le DROP va mettre toutes les bouteilles de LAIT à la poubelle - Le TRUNCATE DROP STORAGE vide intégralement les bouteilles et les met toutes à la poubelle sauf la première - donc il sera possible d'ajouter des bouteilles LAIT comme de JUS.<br /><br />Le DEALLOCATE UNUSED met à la poubelle les bouteilles vides jusqu'à rencontrer le niveau haut du LAIT. Il sera donc possible d'ajouter des bouteilles LAIT comme de JUS ... sous réserve que le niveau haut du LAIT ait permis de mettre des Bouteilles à la Poubelle ...<br /><br />Je vous laisse digérer celaDiGixhttps://www.blogger.com/profile/03595785699258792074noreply@blogger.comtag:blogger.com,1999:blog-695984655367698186.post-41517142454746523132012-11-20T11:40:16.457+01:002012-11-20T11:40:16.457+01:00Bonjour,
J'ai déjà rencontré ce type de probl...Bonjour,<br /><br />J'ai déjà rencontré ce type de problème, notamment par rapport au PRDB qui prend pas mal de place (par exemple lors de rechargement). Cela faisait éventuellement planter le chargement, car les tables étaient pleines. J'avais alors essayé de supprimer des enregistrements, mais effectivement cela ne changeait pas grand chose. j'avais lu plus tard que le delete ne permettaient pas de gagner de la place, mais je n'ai jamais vu clairement ce qu'il fallait faire dans ce cas.<br />Si j'ai bien compris, cette commande (ALTER {TABLE/INDEX} object_name DEALLOCATE UNUSED;<br />) doit permettre de faire le ménage, c'est bien cela ? Il faut la faire en "préventif" (avant que le dépassement de capacité) ? Ou bien si on lance cette commande après un dépassement, cela permet de libérer tout de suite de la place ?<br />Enfin, c'est-ce bien au niveau de chaque table qu'il faut le faire (ZO00, ZO01...) ? Et non pas au niveau de tablspace ?<br />Merci pour vos précisions.<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-695984655367698186.post-11018541364772978702012-09-21T12:07:35.134+02:002012-09-21T12:07:35.134+02:00Hi Damien,
I found your blog 1 month ago, and i&#...Hi Damien,<br /><br />I found your blog 1 month ago, and i'm following it since then.<br /><br />I work in Portugal for a company owned by IBM who resell HR Access.<br /><br />Please continue your excellent job sharing your posts with us.Photo Losthttps://www.blogger.com/profile/05440455772592128437noreply@blogger.com