[备忘] 从客户端看 ORA-01555 问题

[本文原创链接: http://www.smithfox.com/?e=133 , 转载请保留此声明, 谢谢 ]

有关 Oracle的经典错误 ORA-01555 ,  网上已经有许多的文章了, 不过大都是从DBA的角度来看这个问题的, 内容主要是介绍原理和后台解决方案. 本文是作为一个Oracle的client访问者角度去考虑问题. 一个client, 没有权限去改后台的配置, 有时候连查看后台Server的设置都比较麻烦. 一个client, 必须了解ORA-01555对client的影响细节是什么, 才能决定怎样去从client端尽量避免这个问题.

什么是ORA-01555

ORA-01555是 "快照太旧".

所谓"snapshot"是指回滚段中的记录, 所谓"too old"实际是要找的记录已经被大量后面新来记录冲出了 回滚段, (因为空间有限).

回滚段中存的是些什么记录?  是update,delete之前的旧数据.

为什么要到回滚段中查询? 因为 "读一致性". query这个动作本身可能是一个长时间的过程(时间段), 而"read consistency" 是想保证数据集是 query执行那一刻(时间点)的数据, 这样就需要为查询过程中发生改变的数据存old snapshot, 就是存在 rollback segment内. 对于发生改变的数据, Oracle只有到rollback segment才能查询到.

引起ORA-01555的原因不仅仅是上述这一点, 但这个是最常见的, 也是我所要关心的.

能避免ORA-01555吗?

不能!

引起ORA-01555错误的本质是 "read consistency", 但实际需求中, 不一定都必须要"读一致性", 比如replication程序就不需要. SQL92标准中规定的几种 "事务隔离级别" 中有一个READ_COMMIT, 可是Oracle并没有按标准实现, 还是强制了 "读一致性" 到这个级别中, 更别说READ_ONLY, 标准本身就是"读一致性"的.

总之, 我们没有办法能关闭Oracle的 "读一致性"

ORA-01555错误是一种概率性错误, 两种极端都是存在的: 你执行一个非常高效的query, 返回的数据集也非常少, 很快返回, 如果恰巧此时数据库进行了频繁大范围的update,能可能你所查询数据集中的数据被更新, 并且被挤出了rollback segment. 不过这种概率非常小.   还有一种极端, 你用了一个很烂的SQL, 查询的数据集也是非常地大, 完全也有可能这段时间没有任何update,所以一切都非常地顺利.  不过这种情况发生ORA-01555的概率非常大.

所以, 不能完全避免 ORA-01555, 只能降低发生概率.

发生ORA-01555, 客户端会是什么情况?

1. 发生ORA-01555, 会整体影响Oracle Server, 进而对其他session的响应也会变慢吗? 

长时间的query会耗费Oracle Server不少资源, 在内存不足的情况下, 会间接影响其他session, 但是, 这个和ORA-01555本身没有关系. ORA-01555自身就是一个长时间查询的受害者, 他不是影响其他session的人.

2. 执行一个query后, 直到发生ORA-01555, 之前会有数据返回吗?

这个要看query语句本身. 一个 "能立即开始返回数据" 的query, 这个问题的答案"是", 一个  "能立即开始返回数据" 的query, 答案就是"否"

判断标准很简单: 在SQLPlus中输入你的query SQL, 一回车, 看屏幕上是否立即开始打印数据.

是否能立即开始数据   和 query的数据集大小没有关系, 只和当前的query sql是否用上了合理有效的index相关.

比如 select * from sometable;   这样的语句可能有千万行数据, 但它能 立即开始返回数据的.

3. ORA-01555是一个瞬间错误, 还是一个越来越慢, 直至报ORA-01555的过程? 

是一个瞬间错误

4. 用JDBC作为Client端, 发生ORA-01555后, 需要重新建立新的connection, 还是只需要重新建立新的statement?

这个问题, 我还没有搞清楚, 我认为应该是statement. 等项目做完测试后, 再补充. 如果有大侠已经知道这个问题, 能否加个comment?!

从客户端怎么尽量避免ORA-01555?

ORA-01555是一个概率错误, 可以从两个方面降低发生的概率, 一是时间, 二是数据范围.

query时间越长, 发生update/delete/insert的概率就会越大. 数据范围越大, 和update/delete/insert的数据范围相交的机率就越大.

总的思路就是: 将一个大的query分割成多个小的query, 必须要保证每个小的query都是能立即返回数据.

就算是你已经完全按照上面的思路做过split query, 依然还是可能会发生ORA-01555错误的, 所以必须要有一种 查询断点机制.

客户端的查询断点机制

我只提出问题, 在以后的blog再给solution.

考虑组合主键, (pk1,pk2)

pk1 pk2  
1 1  
1 2  如果到这行有一个断点, 我们怎么用SQL恢复这个断点?  如果SQL写成 pk1>=1 & pk2>=2, 那紧接着的下面一行数据将会被漏掉
2 1  这行会被 简单的断点SQL 漏掉
2 2  

这个问题完全可以用SQL解决, 作为思考题 :)

[本文原创链接: http://www.smithfox.com/?e=133 , 转载请保留此声明, 谢谢 ]

smithfox | Wednesday 20 April 2011 at 11:28 am | | other        | Used tags: , , ,

three comments

Louis Vuitton iPhone 6 Plus Wallet Case

Samsung will supposedly announce the phone in the coming weeks, and it’s being called “Project Zero 2” internally. Samsung codenamed the original Galaxy S6 “Project Zero.”

Louis Vuitton iPhone 6 Plus Wallet Case, (URL) - 04-06-’15 15:09
entretien ménager commercial

service de femme de ménage
Professionnelle de l’entretien, notre dynamique entreprise saura réaliser pour vous l’ensemble des travaux ménagers.

G.E.M. s’engage sur une prestation dee qualité ! G.E.M Ménage s’adapte.

Choisissez le jour àvotre convenance.

Le choix le plus populaire est une fois par semaine.
Toutefois, vous êtes libre de déterminer votre fréquence moindre, toutes les deux semaines, une
fois par mois…. G.E.M MÉNAGE s’adapte à votre besoin et à votre budget.

Nous individualisons le service de nettoyage.

Notre expérience nous a enseigné quue chaque
immeuble ou maison est unique, comme les gens qui y vivent.

Le prix pour nettoyer un immeuble ou une maison est basée surr plusieurs facteurs.
La taille du lieu et la fréquence de nettoyage sont pris en compte.
Cependant, nous intégrons également dans notre analyse,
les surfaces à nettoyer et à désinfecter, la présence ou non d’animaux de
compagnie, l’encombrement du lieu.

Pourr vous proposer uun devis qui conviendra à votre budget, G.E.M MÉNAGE vous rencontre chez vous afin de prendre connaissance duu lieu et mieux comprendre vos
besoins et exigences de nettoyage.Si beaucoup pensent que
le nettoyage de bureaux se résume à passer l’aspirateur,
nettoyer les vitrines et vider les poubelles,
En faisant appel à une entreprise telle que G.E.M Québec, vous
avez la garantie d’un nettoyage régulier et dee qualité professionnelle.

Les prestations sont effectuées par des agents d’entretien qualifiés qui sont
formés auux techniques de nettoyage propres à vos types de locaux.

Pour satisfaire tous voss besoins en matière d’entretien ménager, G.E.M
vos offre un service d’entretien et dee nettoyage résidentiel de haute
qualité à un prix parfaitement compétitif.

Toout le ménage de votre domicile est pensé et réalisé dans sses moindres détails.

Lorsque vous remettez l’entretien de votre maison auxx mains méticuleuses de G.E.M, rien n’est laissé au hasard.

Chaque pièce est importante, et cee dans ses moindres recoins.
Non seeulement nous allions notr savoir-faire à une efficacité qui dépassera vos attentes, mais chaque
entretien ménager est effectué avec la plujs grande discrétion.Service d’entretien et de nettoyage résidentielune entreprise de nettoage industriel spécialisée dans la propreté de
vos locaux professionnels (immeubles, bureaux, locaux industriels).L’équipe est composée d’agents de nettoyage qualifiés prêts à intervenir sur tous
les types de chantiers,, après l’élaboration d’un devis de nettoyage complet et
précis, qu’il s’agisse d’une intervention de nettoyage
particulier ou d’un nettoyage de locaux professionnels.De l’entretien courant des sols, vittres et meunles – au neftoyage très spécifique de matériel professiuonnel ; G,E.M prend en charge l’intégralité de votre entretien ménager.
Que ce soit pour vos bureaux, hôtels et surfaces de ventes qui
demandent un entretien méticuleux ccar représentants de votre
enseigne ou espaces communs d’immeubles qui
connaissent un fort taux de passage, G.E.M MÉNAGE
répond à vos besoins.
propose des prestations avec une équipe hautement qualifiée ainsi
que du matériel de nettoyage répondant àtous les besoins de nettoyage dans les bureaux.Les prestations
sont effectuées par des agents d’entretienqualifiés qui sont formés aux techniques de nettoyage propres à vos
types de locaux. Il esst important dee noter que les intervenants sont employés directemednt par g.e.m et non paar vos soins
Si beaucoup pensent que le nettoyage de bureaux se résume à passer l’aspirateur, nettoyer
lles vitrines et vider les poubelles,
Notre équipe de spécialistes chevronnés
accomplida un travail à la fois soigné, rapide ett économique.

De plus, nlus utilisons exclusivement des produits écologiques et hauutement performants, issus
des toutes dernières technologies.
La vie moderne véhicule aussi de lourdes menaces.
D’apparence inoffensive, meubles, appareils ménagers, matériaux
de construction, jouets ou objets familikers peuvent dégager des phtalates ou autres redoutables composés chimiques.

Franchise de Nettoyage Résidentiel et Commercial,
service de femme de ménage ,entretien ménager commercial,
entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal
Nous aidons les personnes désireuses d’être
propriétaires d’entreprises prospères à devenir des
professionnels du nettoyage commercial et de la maintenance.
En rejoignant notrde réseau d’entreprises, vous
bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de
travailler avec un leader du domaine disposant de l’expérience
et laa stabilité.
Vous disiedz augmentez vos revvenus afin d’améliorervotre quotidien ?
Faites Appel a G.E.M Ménage! service dee femme de ménage
,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal, service
de femme de ménage ,entretien ménager commercial,entretien ménager
commercial, ménage résidentiel, service d’entretien ménager montréal
Franchises de Nettoyage Résidentiel et Commercial disponible
Partout A Montréal ,Rive Nord et Rive Sud.

Financemment Sans Intérêt par G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus dde Revenus par Mois)!

Matériel et formation fourni

Nous aidons les perslnnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du nettoyage commercial et de la maintenance.
En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainsi
que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leade du domaine disposant de l’expérience et
la stabilité.

G.E.M Ménage vous offre l’opportunité de ttavailler pendant
la journée de lundi a vendredi .

G.E.M Vous propose des contrats d’entretien ménager avec
des horaires souppes et un revenu garanti.

Pour les persones libres,les nouveaux arrivants ou
lees sans-emplois G.E.M peut favoriser votre accès au marché du
travail !

G.E.M vous propose des contrats stables et rémunérateurs!

Dans le secteur résidentiel idéal pour un couple, ou un homme
sseul dans le secteur commercial
Vous débuter des maintenant

Dess techniques et méthodes de travail éprouvées.
Une aide à la constituion ou à l’enregistrement de leur entreprise.

Dess territoires d’exercice protégés.

Entreprise clés en main.
Un garantie qqui protège votre investfissement

Exigences de l’entrée de notre réseau :
Les demandes sont examinées attentivement et unne enquête
relative à la candidature est menée.
Les candidats doivent passer une entrevue de sélection.
Avant tout début d’activité, les candidats doivent assister à des sessions de formation.

Au G.E.M. nous nous assurons que nnos franchisés puissent offrir à leurs cliennts unn service professionnel d’une qualité supérieure à celle de la concurrence.

Franchise disponible au résidentiel et commerciql

N’hésitez pas à nous contacter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

entretien ménager commercial, (URL) - 29-08-’17 02:05
femme de menage montreal

service dde femme de ménage
Professionnelle de l’entretien, notre dynamique entreprise saura
réaliser pour vous l’ensemble des travaux ménagers.

G.E.M. s’engage sur une prestation de qualité ! femme de menage montreal
Notre équipe dee spécialistes chevronnés accomplira un travail à la
fois soigné, rapide et économique.
De plus,nous utilisons exclusivement des produits écologiques et hautement performants, issus des touts dernières technologies.

La vie moderne véhicule aussi de lourdes menaces.
D’apparence inoffensive, meubles, appareils ménagers, matériaux de construction, jouets ou objets familiers peuvent dégager des phtalates ou autres redoutables composés chimiques.

entretien ménager résidentiel.G.E.M votre unoque
intervenant qui pourra assurer tout au long de l’année la continuité d’un service de hwute qualité et à
la carte !
Entretien ménager résidentiel, Entretien ménager commercial, Grand ménage résidentiel et
commercial, Lavage de Vitres, Lavage de tapis, Décapage et
Cirage de planchers et Plus.

Franchise de Nettoyage Résidentiel et Commercial, service de femme de ménage
,entretien ménager commercial,entretien ménager
commercial, ménage résidentiel, service d’entretien ménager montréal
Nous aidons les personnes désireuses d’être propriétaires d’entreprises prospères à devenir dess professionnels du
nettoyage commercial et de la maintenance.
En rejoignant notre réseau d’entreprises, vous bénéficierez d’un avantage concurrentiel ainnsi que d’une aide apportée parr un modèle d’affaires éprouvé voous
assurant de travailler avec un leader du domaine disposant de l’expérience et la stabilité.

Vous disiez augmentez vos revenus afin d’améliorer votre quotidien ?
Faites Appel a G.E.M Ménage! service de femme de ménage ,entretien ménager commercial,entretien ménager
commercial, ménage résidentiel, service d’entretien ménager montréal, service de femme de ménage ,entretien ménager commercial,entretien ménager commercial, ménage résidentiel, service d’entretien ménager montréal
Franchises de Nettoyage Résidentiel et Commercial disponible Partout A
Montréal ,Rive Noord et Rive Sud.

Financement Sans Intérêt ppar G.E.M .
Un dépôt est obligatoire

Un Investissement de 24 000$ Vous Rapporte (4800$ et plus de Revenus par Mois)!

Matériel et formation fourni

Nous aidons less personnes désireuses d’être propriétaires d’entreprises prospères à devenir des professionnels du nettoyage
commercial et de la maintenance. En rejoignant notre réseau d’entreprises,
vous bénéficierez d’un avantage concurrentiel ainsi que d’une aide apportée par un modèle d’affaires éprouvé vous assurant de travailler avec un leader du
domaine disposant de l’expérience et la stabilité.

G.E.M Ménage vous offre l’opportunité de travailler pendant laa journée de lundi a vendredi .

G.E.M Vous propose dees contrats d’entretien ménager avec dees horaires souples et un revenu garanti.

Pour les personnes libres,les nouveaux arrivants ou
les sans-emplois G.E.M peut favoriser vorre accès au marché du
travail !

G.E.M vous propose des contrats stables ett rémunérateurs!

Dans le secteur résidentiel idéal pour unn couple,
ou un homme seul dan le sewcteur commercial
Vous débuter ddes mainteant

Des techniques et méthodes de travail éprouvées.
Une aide à la constitution ou à l’enregistrement de leur entreprise.

Des territoires d’exercice protégés.
Entreprise clés en main.
Un garzntie qui protège votre investissement

Exigences de l’entrée de notre réseau :
Les demandes sont examinées attentivement et
une enquête relative à la candidature est menée.

Les candidats doivenbt passer une entrevue de sélection.
Avant tout début d’activité, less candidats doivent assister
à des sessions de formation.

Au G.E.M. nous nous assurons que nos franchisés puissent offrir à leurs clients un service professionnel d’une qualité supérieure à celle de la concurrence.

Franchise disponible au résidentiel eet commercial

N’hésitez pas à nous contawcter
469 Jean-Talon Ouest Suite # 222
Montreal QC
gemmenage.net
gemmenage.com

femme de menage montreal, (URL) - 30-08-’17 03:06
(optional field)
(optional field)
为阻止垃圾广告, 请在提交评论前, 回答一个简单问题(Please answer an simple question)
Remember personal info?
Notify
Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.